Rumah pembangunan bahagian belakang Golang Gunakan rangka kerja Gin untuk melaksanakan fungsi pengedaran dan pengurusan

Gunakan rangka kerja Gin untuk melaksanakan fungsi pengedaran dan pengurusan

Jun 22, 2023 pm 11:39 PM
ginframework Kerahan yang diedarkan Fungsi pengurusan

Dengan pembangunan dan aplikasi Internet, sistem yang diedarkan telah menarik lebih banyak perhatian dan perhatian. Dalam sistem teragih, cara untuk mencapai penggunaan pantas dan pengurusan yang mudah telah menjadi teknologi yang diperlukan. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan fungsi penggunaan dan pengurusan sistem teragih.

1. Pengerahan sistem teragih

Pengaturan sistem teragih terutamanya termasuk penggunaan kod, penggunaan persekitaran, pengurusan konfigurasi dan pendaftaran perkhidmatan. Aspek-aspek ini akan diperkenalkan satu persatu di bawah.

  1. Penyerahan kod

Dalam sistem yang diedarkan, penggunaan kod ialah pautan penting. Kerana dalam sistem yang diedarkan, nod yang berbeza mungkin perlu menjalankan kod yang berbeza, dan persekitaran yang dijalankan mungkin juga berbeza. Oleh itu, kita perlu membungkus dan menyusun kod secara berbeza dan kemudian menggunakan ia pada nod yang berbeza.

Menggunakan rangka kerja Gin, kami boleh membungkus dan menyusun kod dengan mudah. Mula-mula, tambah kod berikut pada kod:

func main() {
    gin.SetMode(gin.ReleaseMode)// 设置环境
    router := gin.Default()
    // 以下添加路由
    router.Run(":8080") // 启动服务
}
Salin selepas log masuk

Kemudian, gunakan arahan berikut untuk menyusun:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main main.go
Salin selepas log masuk

Ini melengkapkan penyusunan kod. Kemudian, kita boleh memindahkan fail utama yang disusun ke nod yang berbeza untuk digunakan.

  1. Pengedaran Persekitaran

Sistem teragih biasanya perlu dijalankan pada nod yang berbeza, jadi penggunaan persekitaran juga merupakan pautan penting. Nod yang berbeza mungkin perlu dijalankan dalam persekitaran yang berbeza, jadi kita perlu menentukan persekitaran berjalan setiap nod dan mengkonfigurasinya pada nod.

Menggunakan rangka kerja Gin, kami boleh melaksanakan penggunaan persekitaran dengan mudah. Ini boleh dilakukan melalui teknologi kontena seperti Docker, yang membolehkan penggunaan pantas persekitaran berbeza.

  1. Pengurusan Konfigurasi

Dalam sistem teragih, pengurusan konfigurasi juga merupakan pautan penting. Konfigurasi sistem mungkin memerlukan konfigurasi yang berbeza pada nod yang berbeza Oleh itu, kita perlu mengurus konfigurasi untuk memudahkan kemas kini dan pengurusan konfigurasi yang pantas.

Dalam rangka kerja Gin, kami boleh melaksanakan pengurusan konfigurasi melalui fail konfigurasi. Secara khusus, ia boleh dilaksanakan menggunakan viper, seperti yang ditunjukkan di bawah:

import (
    "github.com/spf13/viper"
)

// 读取配置文件
viper.SetConfigName("config") // 设置文件名(不带后缀)
viper.SetConfigType("yaml") // 设置文件类型
viper.AddConfigPath(".") // 设置文件路径
viper.ReadInConfig() // 读取配置文件
Salin selepas log masuk
  1. Pendaftaran Perkhidmatan

Dalam sistem yang diedarkan, pendaftaran perkhidmatan adalah pautan yang sangat penting. Pendaftaran perkhidmatan boleh merealisasikan penemuan dinamik dan pengurusan perkhidmatan, dan memudahkan permohonan dan pengurusan perkhidmatan.

Dalam rangka kerja Gin, kita boleh menggunakan teknologi pusat pendaftaran seperti konsul untuk mendaftar perkhidmatan. Secara khusus, ia boleh dilaksanakan menggunakan konsul-api, seperti yang ditunjukkan di bawah:

import (
    "github.com/hashicorp/consul/api"
)

// 创建一个consul客户端连接
client, err := api.NewClient(&api.Config{Address: "127.0.0.1:8500"})

// 注册服务
registration := &api.AgentServiceRegistration{
    Name: "service_name",
    ID: "service_id",
    Address: "service_ip",
    Port: service_port,
    Tags: []string{"tag1", "tag2"},
    Check: &api.AgentServiceCheck{
        Interval: "10s",
        HTTP: "http://127.0.0.1:8080/health",
    },
}

err = client.Agent().ServiceRegister(registration)

// 查询服务
services, _, err := client.Health().Service("service_name", "", true, nil)
Salin selepas log masuk

2. Pengurusan sistem teragih

Dalam sistem teragih, pengurusan juga merupakan aspek yang sangat penting. Pemantauan sistem, pengurusan log, pengendalian ralat, dsb. semuanya perlu diuruskan untuk memudahkan lokasi cepat dan penyelesaian masalah. Aspek-aspek ini akan diperkenalkan satu persatu di bawah.

  1. Pemantauan Sistem

Dalam sistem teragih, pemantauan sistem adalah sangat penting. Melalui pemantauan, masalah dalam sistem boleh ditemui dengan cepat dan langkah-langkah yang sepadan boleh diambil untuk menanganinya.

Menggunakan rangka kerja Gin, kita boleh menggunakan prometheus dan rangka kerja pemantauan lain untuk pemantauan. Secara khusus, prometheus-promhttp boleh digunakan untuk melaksanakannya, seperti ditunjukkan di bawah:

import (
    "github.com/gin-gonic/gin"
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var (
    httpRequestsTotal = prometheus.NewCounterVec(prometheus.CounterOpts{
        Name: "http_requests_total",
        Help: "Total number of HTTP requests",
    }, []string{"method", "path", "status"})
)

func main() {
    ...
    router.Use(prometheusMiddleware())
    router.GET("/metrics", promhttp.Handler().ServeHTTP)
    ...
}

func prometheusMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        start := time.Now()

        c.Next()

        httpRequestsTotal.With(prometheus.Labels{
            "method": c.Request.Method,
            "path": c.Request.URL.Path,
            "status": strconv.Itoa(c.Writer.Status()),
        }).Inc()
        prometheusRequestDuration.Observe(float64(time.Since(start).Milliseconds()))
    }
}
Salin selepas log masuk
  1. Pengurusan log

Dalam sistem teragih, pengurusan log juga sangat penting. Melalui log, anda boleh menemui masalah dalam sistem dengan cepat dan mencari serta menyelesaikan masalah dengan cepat.

Menggunakan rangka kerja Gin, kita boleh menggunakan rangka kerja log seperti logrus untuk pengurusan log. Secara khusus, logrus boleh digunakan untuk melaksanakan ini, seperti yang ditunjukkan di bawah:

import (
    "os"
    "github.com/sirupsen/logrus"
)

func main() {
    ...
    // 设置日志输出
    jsonFormatter := &logrus.JSONFormatter{}
    logPath := "./logs/gin.log"
    logFile, err := os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
    if err == nil {
        gin.DefaultWriter = io.MultiWriter(logFile, os.Stdout)
        gin.DefaultErrorWriter = io.MultiWriter(logFile, os.Stdout)
    }

    // 添加钩子
    logrus.AddHook(new(LogrusGinHook))
    ...
}

type LogrusGinHook struct{}
func (h *LogrusGinHook) Levels() []logrus.Level {
    return logrus.AllLevels
}
func (h *LogrusGinHook) Fire(entry *logrus.Entry) error {
    /**
        自定义日志输出内容,例如:
        access:
        referer
        agent
    */
    if entry.Data != nil {
        if entry.Data["deferred"] != nil {
            entry.Data["deferred"] = fmt.Sprintf("%+v", entry.Data["deferred"])
        }
    }
    return nil
}
Salin selepas log masuk
  1. Pengendalian ralat

Dalam sistem teragih, pengendalian ralat juga sangat penting. Melalui pengendalian ralat, kami dapat menyelesaikan masalah dengan cepat dan meningkatkan kestabilan sistem.

Menggunakan rangka kerja Gin, kita boleh melaksanakan pengendalian ralat melalui recover(), seperti yang ditunjukkan di bawah:

func main() {
    ...
    router.Use(recoveryMiddleware())
    ...
}

func recoveryMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        defer func() {
            if r := recover(); r != nil {
                logrus.Errorf("recover error:%v", r)
            }
        }()
        c.Next()
    }
}
Salin selepas log masuk

3 Ringkasan

Dengan menggunakan rangka kerja Gin, kita boleh Ia adalah sangat mudah untuk melaksanakan fungsi penggunaan dan pengurusan sistem teragih. Dalam aplikasi praktikal, ia juga boleh digabungkan dengan teknologi lain untuk mencapai fungsi yang lebih berkuasa, seperti menggunakan grpc untuk melaksanakan panggilan sistem yang diedarkan, dan menggabungkan teknologi kontena seperti k8s untuk mencapai penggunaan automatik dan pengurusan sistem.

Atas ialah kandungan terperinci Gunakan rangka kerja Gin untuk melaksanakan fungsi pengedaran dan pengurusan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membina 4 cakera maya untuk membina kluster MiniIO yang diedarkan di Linux? Bagaimana untuk membina 4 cakera maya untuk membina kluster MiniIO yang diedarkan di Linux? Feb 10, 2024 pm 04:48 PM

Memandangkan saya baru-baru ini mula bertanggungjawab untuk pembinaan dan operasi kestabilan dan penyelenggaraan sistem berkaitan penyimpanan objek, sebagai orang baru dalam "storan objek", saya perlu mengukuhkan pembelajaran saya dalam bidang ini. Memandangkan syarikat pada masa ini menggunakan MiniIO untuk membina sistem penyimpanan objek syarikat, saya secara beransur-ansur akan berkongsi pengalaman pembelajaran saya tentang MiniIO pada masa hadapan. Semua orang dialu-alukan untuk terus memberi perhatian. Artikel ini terutamanya memperkenalkan cara menyediakan MiniIO dalam persekitaran ujian, yang juga merupakan langkah paling asas dalam membina persekitaran pembelajaran MinIO. 1. Sediakan persekitaran eksperimen menggunakan mesin maya OracleVMVirtualBox, pasang versi minimum Linux, dan kemudian tambah 4 cakera maya untuk berfungsi sebagai cakera maya MiniIO. Persekitaran percubaan adalah seperti berikut: Seterusnya, izinkan saya memperkenalkannya secara ringkas kepada anda

Gunakan rangka kerja Gin untuk melaksanakan fungsi penghuraian data XML dan JSON Gunakan rangka kerja Gin untuk melaksanakan fungsi penghuraian data XML dan JSON Jun 22, 2023 pm 03:14 PM

Dalam bidang pembangunan web, XML dan JSON, salah satu format data, digunakan secara meluas, dan rangka kerja Gin ialah rangka kerja web bahasa Go ringan yang ringkas, mudah digunakan dan mempunyai prestasi yang cekap. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan fungsi penghuraian data XML dan JSON. Gambaran Keseluruhan Rangka Kerja Gin Rangka kerja Gin ialah rangka kerja web berdasarkan bahasa Go, yang boleh digunakan untuk membina aplikasi web yang cekap dan berskala. Rangka kerja Gin direka bentuk untuk ringkas dan mudah digunakan Ia menyediakan pelbagai perisian tengah dan pemalam untuk membuat pembangunan

Gunakan rangka kerja Gin untuk melaksanakan penjanaan automatik dokumen API dan fungsi pusat dokumen Gunakan rangka kerja Gin untuk melaksanakan penjanaan automatik dokumen API dan fungsi pusat dokumen Jun 23, 2023 am 11:40 AM

Dengan pembangunan aplikasi Internet yang berterusan, penggunaan antara muka API menjadi semakin popular. Semasa proses pembangunan, untuk memudahkan penggunaan dan pengurusan antara muka, penulisan dan penyelenggaraan dokumen API telah menjadi semakin penting. Cara tradisional menulis dokumen memerlukan penyelenggaraan manual, yang tidak cekap dan mudah ralat. Untuk menyelesaikan masalah ini, banyak pasukan telah mula menggunakan penjanaan automatik dokumen API untuk meningkatkan kecekapan pembangunan dan kualiti kod. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan penjanaan automatik dokumen API dan fungsi pusat dokumen. Gin adalah satu

Gunakan rangka kerja Gin untuk melaksanakan gerbang API dan fungsi pengesahan dan kebenaran Gunakan rangka kerja Gin untuk melaksanakan gerbang API dan fungsi pengesahan dan kebenaran Jun 22, 2023 am 08:57 AM

Dalam seni bina Internet moden, gerbang API telah menjadi komponen penting dan digunakan secara meluas dalam senario perusahaan dan pengkomputeran awan. Fungsi utama gerbang API adalah untuk mengurus dan mengedarkan antara muka API berbilang sistem mikro perkhidmatan secara seragam, menyediakan kawalan akses dan perlindungan keselamatan, dan juga boleh melaksanakan pengurusan, pemantauan dan pengelogan dokumen API. Untuk memastikan keselamatan dan kebolehskalaan get laluan API dengan lebih baik, beberapa mekanisme kawalan akses dan pengesahan dan kebenaran juga telah ditambahkan pada get laluan API. Mekanisme sedemikian boleh memastikan pengguna dan perkhidmatan

Gunakan rangka kerja Gin untuk melaksanakan pemantauan masa nyata dan fungsi penggera Gunakan rangka kerja Gin untuk melaksanakan pemantauan masa nyata dan fungsi penggera Jun 22, 2023 pm 06:22 PM

Gin ialah rangka kerja Web ringan yang menggunakan keupayaan pemprosesan penghalaan coroutine dan berkelajuan tinggi bagi bahasa Go untuk membangunkan aplikasi Web berprestasi tinggi dengan pantas. Dalam artikel ini, kami akan meneroka cara menggunakan rangka kerja Gin untuk melaksanakan pemantauan masa nyata dan fungsi penggera. Pemantauan dan membimbangkan adalah bahagian penting dalam pembangunan perisian moden. Dalam sistem yang besar, mungkin terdapat beribu-ribu proses, beratus-ratus pelayan, dan berjuta-juta pengguna. Jumlah data yang dijana oleh sistem ini selalunya mengejutkan, jadi terdapat keperluan untuk sistem yang boleh memproses data ini dengan cepat dan memberikan amaran tepat pada masanya.

Penjelasan terperinci tentang proksi terbalik dan pemajuan permintaan dalam rangka kerja Gin Penjelasan terperinci tentang proksi terbalik dan pemajuan permintaan dalam rangka kerja Gin Jun 23, 2023 am 11:43 AM

Dengan perkembangan pesat aplikasi web, semakin banyak perusahaan cenderung menggunakan bahasa Golang untuk pembangunan. Dalam pembangunan Golang, menggunakan rangka kerja Gin adalah pilihan yang sangat popular. Rangka kerja Gin ialah rangka kerja web berprestasi tinggi yang menggunakan fasthttp sebagai enjin HTTP dan mempunyai reka bentuk API yang ringan dan elegan. Dalam artikel ini, kami akan menyelidiki aplikasi proksi terbalik dan pemajuan permintaan dalam rangka kerja Gin. Konsep proksi terbalik Konsep proksi terbalik adalah menggunakan pelayan proksi untuk membuat klien

Penjelasan terperinci tentang prestasi keselamatan dan konfigurasi keselamatan rangka kerja Gin Penjelasan terperinci tentang prestasi keselamatan dan konfigurasi keselamatan rangka kerja Gin Jun 22, 2023 pm 06:51 PM

Rangka kerja Gin ialah rangka kerja pembangunan web yang ringan berdasarkan bahasa Go dan menyediakan ciri yang sangat baik seperti fungsi penghalaan yang berkuasa, sokongan perisian tengah dan kebolehskalaan. Walau bagaimanapun, keselamatan adalah faktor penting untuk mana-mana aplikasi web. Dalam artikel ini, kami akan membincangkan prestasi keselamatan dan konfigurasi keselamatan rangka kerja Gin untuk membantu pengguna memastikan keselamatan aplikasi web mereka. 1. Prestasi keselamatan rangka kerja Gin 1.1 Pencegahan serangan XSS Serangan skrip silang tapak (XSS) ialah Web yang paling biasa

Penjelasan terperinci mengenai pemprosesan pengantarabangsaan dan sokongan pelbagai bahasa bagi rangka kerja Gin Penjelasan terperinci mengenai pemprosesan pengantarabangsaan dan sokongan pelbagai bahasa bagi rangka kerja Gin Jun 22, 2023 am 10:06 AM

Rangka kerja Gin ialah rangka kerja web ringan yang dicirikan oleh kelajuan dan fleksibiliti. Untuk aplikasi yang perlu menyokong berbilang bahasa, rangka kerja Gin boleh melaksanakan pemprosesan pengantarabangsaan dan sokongan berbilang bahasa dengan mudah. Artikel ini akan menghuraikan pemprosesan pengantarabangsaan dan sokongan pelbagai bahasa bagi rangka kerja Gin. Pengantarabangsaan Semasa proses pembangunan, untuk mengambil kira pengguna bahasa yang berbeza, adalah perlu untuk mengantarabangsakan aplikasi. Ringkasnya, pemprosesan pengantarabangsaan bermaksud mengubah suai dan menyesuaikan fail sumber, kod, teks, dsb.

See all articles