Rumah pembangunan bahagian belakang Golang Menggunakan Zookeeper dan Dubbo untuk melaksanakan tadbir urus perkhidmatan teragih di Beego

Menggunakan Zookeeper dan Dubbo untuk melaksanakan tadbir urus perkhidmatan teragih di Beego

Jun 22, 2023 am 08:43 AM
dubbo zookeeper beego

Dengan pembangunan berterusan perniagaan Internet, satu nod perkhidmatan tidak lagi dapat memenuhi keperluan konkurensi yang tinggi dan ketersediaan yang tinggi. Oleh itu, seni bina teragih telah menjadi kaedah pembangunan moden dan salah satu teknologi yang mesti dikuasai.

Dalam seni bina yang diedarkan, tadbir urus perkhidmatan merupakan isu yang kompleks dan penting. Untuk memastikan ketersediaan, kualiti dan prestasi perkhidmatan yang tinggi, tadbir urus perkhidmatan perlu melaksanakan pelbagai fungsi seperti pendaftaran perkhidmatan, penemuan, pengimbangan beban, failover dan pemantauan. Zookeeper dan Dubbo adalah peneraju dalam tadbir urus perkhidmatan teragih Mereka boleh bekerjasama untuk merealisasikan keseluruhan proses tadbir urus perkhidmatan.

Artikel ini akan memperkenalkan cara menggunakan Zookeeper dan Dubbo untuk melaksanakan tadbir urus perkhidmatan teragih dalam rangka kerja Beego.

1. Zookeeper

Zookeeper ialah perkhidmatan penyelarasan teragih sumber terbuka Ia pada asalnya dibangunkan oleh Yahoo dan kini telah menjadi projek peringkat tertinggi Apache. Ia boleh mengurus sejumlah besar nod dan menyelaras, menyegerak dan memantaunya untuk mencapai ketersediaan tinggi dan fungsi penemuan perkhidmatan.

  1. Pasang dan mulakan Zookeeper

Pertama, anda perlu memuat turun versi stabil Zookeeper dari tapak web rasmi Zookeeper https://zookeeper.apache.org/ After nyahmampat, konfigurasikan fail zoo.cfg. Untuk memulakan Zookeeper dalam mod berdiri sendiri, anda hanya perlu menambah baris konfigurasi dalam fail zoo.cfg:

server.1=localhost:2888:3888
Salin selepas log masuk

Antaranya, 1 mewakili nombor dalam kelompok Zookeeper, localhost:2888:3888 mewakili IP, port dan port yang didengari oleh nod Zookeeper.

Seterusnya, jalankan arahan berikut untuk memulakan Zookeeper:

./zkServer.sh start
Salin selepas log masuk

Anda boleh menggunakan arahan berikut untuk menyemak sama ada Zookeeper dimulakan dengan jayanya:

echo ruok | nc localhost 2181
Salin selepas log masuk

Jika Zookeeper berjalan seperti biasa, "imok" dikembalikan untuk menunjukkan permulaan yang berjaya.

  1. Gunakan ZkGo untuk operasi Zookeeper

Terdapat berbilang perpustakaan Zookeeper untuk dipilih dalam bahasa Go, antaranya ZkGo adalah yang lebih popular dan stabil. Menggunakan ZkGo, anda boleh menyambung dengan mudah ke Zookeeper, mencipta nod, memantau perubahan nod, dsb.

Untuk menggunakan ZkGo dalam rangka kerja Beego bahasa Go, anda perlu memasang pergantungan ZkGo dahulu:

go get github.com/samuel/go-zookeeper/zk
Salin selepas log masuk

Kemudian, anda boleh mengendalikan nod Zookeeper dalam kod, contohnya:

package main

import (
    "fmt"
    "time"
    "github.com/samuel/go-zookeeper/zk"
)

func main() {
    // 连接Zookeeper服务器
    conn, _, err := zk.Connect([]string{"localhost:2181"}, time.Second*5)
    if err != nil {
        panic(err)
    }
    defer conn.Close()

    // 创建一个节点
    path, err := conn.Create("/test", []byte("hello world"), 0, zk.WorldACL(zk.PermAll))
    if err != nil {
        panic(err)
    }
    fmt.Println("Created znode:", path)

    // 获取该节点的值
    data, _, err := conn.Get(path)
    if err != nil {
        panic(err)
    }
    fmt.Printf("Get znode %s: %s
", path, data)

    // 删除该节点
    err = conn.Delete(path, -1)
    if err != nil {
        panic(err)
    }
    fmt.Println("Deleted znode:", path)
}
Salin selepas log masuk

dalam Dalam contoh di atas, mula-mula sambung ke pelayan Zookeeper melalui kaedah zk.Connect, kemudian gunakan kaedah zk.Create untuk mencipta nod bernama "/test" dan gunakan rentetan "hello world" sebagai data nod. Kemudian gunakan kaedah zk.Get untuk mendapatkan data nod "/test", dan gunakan kaedah zk.Delete untuk memadamkan nod.

2. Dubbo

Dubbo ialah rangka kerja perkhidmatan teragih berprestasi tinggi dan salah satu projek sumber terbuka Alibaba. Dubbo menyediakan berbilang fungsi seperti pendaftaran perkhidmatan, penemuan, pengimbangan beban, failover, dsb., dan menyokong berbilang protokol komunikasi RPC.

  1. Pasang dan mulakan Dubbo

Pertama, anda perlu memuat turun rangka kerja Dubbo Laman web rasmi ialah https://github.com/apache/dubbo-go. Selepas menyahzip, masukkan direktori dubbo /go-server/demo, gunakan arahan berikut untuk memulakan Dubbo:

go run main.go
Salin selepas log masuk

Selepas permulaan, anda boleh melihat status berjalan Dubbo melalui konsol pengurusan Web Dubbo.

  1. Gunakan Dubbo untuk mendaftar dan memanggil perkhidmatan

Penyepaduan rangka kerja Beego dan Dubbo memerlukan penggunaan DubboGo SDK, yang boleh dipasang melalui arahan berikut:

go get github.com/apache/dubbo-go
Salin selepas log masuk

Gunakan DubboGo SDK boleh mengakses perkhidmatan RPC yang disediakan oleh Dubbo dengan mudah. Dalam rangka kerja Beego, anda boleh mendaftar dan menghubungi perkhidmatan yang disediakan oleh Dubbo melalui kod berikut:

import (
    "github.com/apache/dubbo-go/config"
    "github.com/apache/dubbo-go/registry"
)

// 注册Dubbo服务
func RegisterDubboService() {
    // 配置Dubbo服务注册中心
    config.GetApplicationConfig().Name = "my-application"
    config.GetProviderConfig().Registry = registry.NewZookeeperRegistry("127.0.0.1:2181")
    // 注册服务
    err := config.RegisterProvider(
        &config.ServiceConfig{
            InterfaceName: "org.apache.dubbo.DemoService",
            Protocol:      "dubbo",
            Ip:            "127.0.0.1",
            Port:          20880,
            MethodConfigs: []*config.MethodConfig{
                &config.MethodConfig{
                    Name: "SayHello",
                },
            },
            Registry: config.GetProviderConfig().Registry,
        },
        new(DemoServiceImpl),
    )
    if err != nil {
        panic(err)
    }
}

// 调用Dubbo服务
func CallDubboService() {
    // 配置Dubbo服务发现中心
    config.GetConsumerConfig().Registry = registry.NewZookeeperRegistry("127.0.0.1:2181")
    // 调用服务
    reference, err := config.NewReference(&config.ReferenceConfig{
        InterfaceName: "org.apache.dubbo.DemoService",
        Urls:          []string{"dubbo://127.0.0.1:20880/org.apache.dubbo.DemoService"},
        Registry:      config.GetConsumerConfig().Registry,
    })
    if err != nil {
        panic(err)
    }
    demoService := reference.(*DemoService)
    res, err := demoService.SayHello("Dubbo")
    if err != nil {
        panic(err)
    }
    fmt.Println(res)
}
Salin selepas log masuk

Dalam kod di atas, mula-mula gunakan DubboGo SDK untuk mendaftar perkhidmatan, dan kemudian gunakan DubboGo SDK untuk memanggil perkhidmatan . Apabila mendaftar perkhidmatan, anda perlu mengkonfigurasi pusat pendaftaran perkhidmatan Dubbo dahulu, dan kemudian menentukan nama antara muka perkhidmatan, protokol, alamat IP, port, konfigurasi kaedah dan maklumat lain. Apabila memanggil perkhidmatan, anda perlu mengkonfigurasi pusat penemuan perkhidmatan Dubbo dan membuat rujukan perkhidmatan Dubbo menggunakan URL perkhidmatan dan nama antara muka yang disediakan oleh Dubbo.

3. Integrasikan Zookeeper dan Dubbo

Untuk menyepadukan Zookeeper dan Dubbo dalam rangka kerja Beego, anda perlu mendaftarkan perkhidmatan Dubbo dahulu, dan kemudian gunakan URL perkhidmatan yang disediakan oleh Dubbo untuk mendaftarkan Dubbo nod dalam Zookeeper. Ini boleh dicapai dengan kod berikut:

import (
    "github.com/apache/dubbo-go/config"
    "github.com/apache/dubbo-go/registry"
    "github.com/samuel/go-zookeeper/zk"
)

// 集成Zookeeper和Dubbo
func IntegrateZkDubbo() {
    // 配置Dubbo服务注册中心
    config.GetApplicationConfig().Name = "my-application"
    config.GetProviderConfig().Registry = registry.NewZookeeperRegistry("127.0.0.1:2181")

    // 注册Dubbo服务
    err := config.RegisterProvider(
        &config.ServiceConfig{
            InterfaceName: "org.apache.dubbo.DemoService",
            Protocol:      "dubbo",
            Ip:            "127.0.0.1",
            Port:          20880,
            MethodConfigs: []*config.MethodConfig{
                &config.MethodConfig{
                    Name: "SayHello",
                },
            },
            Registry: config.GetProviderConfig().Registry,
        },
        new(DemoServiceImpl),
    )
    if err != nil {
        panic(err)
    }

    // 将Dubbo服务URL注册到Zookeeper
    conn, _, err := zk.Connect([]string{"localhost:2181"}, time.Second*5)
    if err != nil {
        panic(err)
    }
    defer conn.Close()

    serviceURL := fmt.Sprintf("dubbo://127.0.0.1:20880/org.apache.dubbo.DemoService?anyhost=true&application=my-application&dubbo=2.0.2&generic=false&interface=org.apache.dubbo.DemoService&loadbalance=random&methods=SayHello&pid=1&side=provider&timeout=1000000")
    _, err = conn.Create("/dubbo/org.apache.dubbo.DemoService/providers/"+serviceURL, nil, zk.FlagEphemeral, zk.WorldACL(zk.PermAll))
    if err != nil {
        panic(err)
    }
}
Salin selepas log masuk

Dalam kod di atas, mula-mula gunakan DubboGo SDK untuk mendaftarkan perkhidmatan, kemudian dapatkan URL perkhidmatan Dubbo dan daftarkan maklumat URL perkhidmatan Dubbo kepada Zookeeper. Mula-mula sambung ke pelayan Zookeeper melalui kaedah zk.Connect dan kemudian gunakan kaedah zk.Create untuk mencipta nod bernama "/dubbo/org.apache.dubbo.DemoService/providers/service URL" dalam Zookeeper, di mana data nod kosong dan jenis nod ialah zk.FlagEphemeral, menunjukkan bahawa ini adalah nod sementara. Selepas nod berjaya dibuat, perkhidmatan Dubbo akan didaftarkan di Zookeeper.

4. Pengujian

Selepas menggunakan rangka kerja Beego untuk menyepadukan Zookeeper dan Dubbo, anda boleh menguji perkhidmatan Dubbo melalui permintaan HTTP untuk mengesahkan pelaksanaan fungsi tadbir urus perkhidmatan. Anda boleh menggunakan alatan HTTP seperti Postman untuk membina pengepala permintaan HTTP menggunakan URL perkhidmatan Dubbo, dan kemudian menambah parameter permintaan dalam badan mesej untuk memulakan panggilan perkhidmatan Dubbo. Sebagai contoh, anggap bahawa URL perkhidmatan Dubbo ialah:

dubbo://127.0.0.1:20880/org.apache.dubbo.DemoService?anyhost=true&application=my-application&dubbo=2.0.2&generic=false&interface=org.apache.dubbo.DemoService&loadbalance=random&methods=SayHello&pid=1&side=provider&timeout=1000000
Salin selepas log masuk

Apabila menggunakan Posmen untuk mensimulasikan panggilan perkhidmatan Dubbo, anda boleh menambah parameter berikut dalam badan permintaan HTTP (Content-Type is application/json):

{
    "methodName": "SayHello",
    "parameterTypes": [
        "java.lang.String"
    ],
    "arguments": [
        "Dubbo"
    ]
}
Salin selepas log masuk

Selepas menghantar permintaan HTTP, anda boleh mendapatkan hasil panggilan perkhidmatan tersebut.

Ringkasan

Tadbir urus perkhidmatan teragih ialah isu yang kompleks dan penting Penyepaduan Zookeeper dan Dubbo dalam rangka kerja Beego boleh merealisasikan pelbagai fungsi seperti pendaftaran perkhidmatan, penemuan, pengimbangan beban, failover, dsb., dan meningkatkan kebolehpercayaan dan ketersediaan tinggi sistem teragih. Memberi perlindungan yang kuat. Kita boleh mempelajari dan menggunakan contoh kod yang disediakan dalam artikel ini, menguasai teknologi teras tadbir urus perkhidmatan teragih dan menggunakannya dalam projek sebenar.

Atas ialah kandungan terperinci Menggunakan Zookeeper dan Dubbo untuk melaksanakan tadbir urus perkhidmatan teragih di Beego. 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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu 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)

Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Jun 22, 2023 am 09:06 AM

Dengan peningkatan pengkomputeran awan dan perkhidmatan mikro, kerumitan aplikasi telah meningkat. Oleh itu, pemantauan dan diagnostik menjadi salah satu tugas pembangunan yang penting. Dalam hal ini, Prometheus dan Grafana ialah dua alat pemantauan dan visualisasi sumber terbuka yang popular yang boleh membantu pembangun memantau dan menganalisis aplikasi dengan lebih baik. Artikel ini akan meneroka cara menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan dalam rangka kerja Beego. 1. Pengenalan Beego ialah aplikasi web pembangunan pesat sumber terbuka.

Gunakan Analitis Google untuk mengira data tapak web dalam Beego Gunakan Analitis Google untuk mengira data tapak web dalam Beego Jun 22, 2023 am 09:19 AM

Dengan perkembangan pesat Internet, penggunaan aplikasi Web menjadi semakin biasa Bagaimana untuk memantau dan menganalisis penggunaan aplikasi Web telah menjadi tumpuan pembangun dan pengendali laman web. Google Analytics ialah alat analitis tapak web yang berkuasa yang boleh menjejak dan menganalisis tingkah laku pelawat tapak web. Artikel ini akan memperkenalkan cara menggunakan Google Analitis dalam Beego untuk mengumpul data tapak web. 1. Untuk mendaftar akaun Google Analitis, anda perlu terlebih dahulu

Tutorial praktikal pembangunan SpringBoot+Dubbo+Nacos Tutorial praktikal pembangunan SpringBoot+Dubbo+Nacos Aug 15, 2023 pm 04:49 PM

Artikel ini akan menulis contoh terperinci untuk bercakap tentang perkembangan sebenar dubbo+nacos+Spring Boot. Artikel ini tidak akan merangkumi terlalu banyak pengetahuan teori, tetapi akan menulis contoh paling mudah untuk menggambarkan bagaimana dubbo boleh disepadukan dengan nacos untuk membina persekitaran pembangunan dengan cepat.

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Ralat pengendalian dalam Beego - menghalang ranap aplikasi Ralat pengendalian dalam Beego - menghalang ranap aplikasi Jun 22, 2023 am 11:50 AM

Dalam rangka kerja Beego, pengendalian ralat adalah bahagian yang sangat penting, kerana jika aplikasi tidak mempunyai mekanisme pengendalian ralat yang betul dan lengkap, ia boleh menyebabkan aplikasi itu ranap atau tidak berjalan dengan betul, iaitu untuk projek dan pengguna kami masalah yang sangat serius. Rangka kerja Beego menyediakan satu siri mekanisme untuk membantu kami mengelakkan masalah ini dan menjadikan kod kami lebih teguh dan boleh diselenggara. Dalam artikel ini, kami akan memperkenalkan mekanisme pengendalian ralat dalam rangka kerja Beego dan membincangkan cara ia boleh membantu kami mengelakkan

Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Jun 22, 2023 pm 09:27 PM

Dengan perkembangan pesat Internet, sistem teragih telah menjadi salah satu infrastruktur dalam banyak perusahaan dan organisasi. Untuk sistem teragih berfungsi dengan baik, ia perlu diselaraskan dan diuruskan. Dalam hal ini, ZooKeeper dan Curator ialah dua alat yang patut digunakan. ZooKeeper ialah perkhidmatan penyelarasan teragih yang sangat popular yang boleh membantu kami menyelaraskan status dan data antara nod dalam kelompok. Kurator ialah enkapsulasi ZooKeeper

Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Jun 23, 2023 am 08:58 AM

Dengan perkembangan pesat Internet, semakin banyak perusahaan telah mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan. Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi dan pengurusan Sesi. Dalam artikel ini kami akan membincangkan cara menggunakan Docker dan Kub

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

See all articles