Dalam era Internet mudah alih dan pengkomputeran awan hari ini, sistem teragih semakin digunakan dalam aplikasi, terutamanya dalam bidang prestasi tinggi dan ketersediaan tinggi. Sistem teragih terdiri daripada berbilang komponen atau perkhidmatan bebas Komponen ini berkomunikasi antara satu sama lain melalui rangkaian dan menyelaras untuk menyelesaikan tugasan tertentu. Go-micro ialah rangka kerja sistem teragih berdasarkan bahasa Go yang boleh membina aplikasi perkhidmatan mikro dengan cepat yang sangat tersedia, berprestasi tinggi, mudah dikembangkan dan mudah diselenggara. Artikel ini akan memperkenalkan cara menggunakan rangka kerja go-micro untuk membina sistem teragih dengan cepat.
1. Pengenalan kepada rangka kerja go-micro
Rangka kerja go-micro ialah rangka kerja mikro perkhidmatan kependaman berprestasi tinggi yang menyokong berbilang protokol penghantaran (http, grpc, tcp, nat) . Menyediakan komponen yang berkaitan (penemuan perkhidmatan, proksi terbalik, pengimbangan beban, pengesanan teragih dan pemutus litar perkhidmatan, dll.) untuk mencapai keanjalan, pengimbangan beban, keselamatan dan kebolehpercayaan perkhidmatan mikro. Rangka kerja go-micro menyediakan API dan mekanisme sambungan yang ringkas dan mudah digunakan yang boleh digunakan dengan mana-mana platform perkhidmatan mikro berasaskan GRPC dan platform pengkomputeran awan (seperti Kubernetes, AWS, GCE, lautan Digital, dll.).
2. Contoh aplikasi rangka kerja Go-micro
Sebelum menggunakan rangka kerja go-micro, kami perlu memasang dan mengkonfigurasi kebergantungan dan pemalam yang sepadan. Untuk prosedur pemasangan dan konfigurasi khusus, sila rujuk dokumentasi rasmi go-micro dan blog berkaitan. Di bawah, kami akan menggunakan contoh untuk menunjukkan cara menggunakan rangka kerja go-micro untuk membina sistem teragih.
Kod sebelah pelayan digunakan untuk menyediakan fungsi asas, seperti sambungan pangkalan data, pengesahan, pengelogan dan perisian tengah, dsb. Dalam rangka kerja go-micro, kita perlu mentakrifkan antara muka perkhidmatan dan kaedah perkhidmatan, serta melaksanakan antara muka dan kaedah ini. Berikut ialah contoh kod sebelah pelayan ringkas:
package main import ( "log" "github.com/micro/go-micro" ) type Greeter struct{} func (g *Greeter) Hello(ctx context.Context, req *proto.HelloRequest, rsp *proto.HelloResponse) error { rsp.Greeting = "Hello, " + req.Name + "!" return nil } func main() { service := micro.NewService(micro.Name("greeter")) service.Init() // 注册服务 proto.RegisterGreeterHandler(service.Server(), new(Greeter)) if err := service.Run(); err != nil { log.Fatal(err) } }
Analisis kod:
service := micro.NewService(micro.Name("greeter"))
menggunakan rangka kerja go-micro dan mulakan perkhidmatan service.Init()
. proto.RegisterGreeterHandler(service.Server(), new(Greeter))
. if err := service.Run(); err != nil {...}
. Kod pelanggan digunakan untuk memanggil fungsi yang disediakan oleh pelayan. Dalam rangka kerja go-micro, kita perlu menentukan antara muka klien dan kaedah klien, dan membuat panggilan jauh melalui kod klien yang dijana secara automatik oleh go-micro. Berikut ialah contoh kod pelanggan mudah:
package main import ( "log" "github.com/micro/go-micro" ) func main() { service := micro.NewService(micro.Name("greeter.client")) service.Init() // 创建 micro-service 客户端 client := proto.NewGreeterClient("greeter", service.Client()) // 调用微服务接口 rsp, err := client.Hello(context.TODO(), &proto.HelloRequest{Name: "World"}) if err != nil { log.Fatal(err) } log.Println(rsp.Greeting) }
Analisis kod:
service := micro.NewService(micro.Name("greeter.client"))
menggunakan rangka kerja go-micro dan mulakan klien service.Init()
. proto.NewGreeterClient("greeter", service.Client())
untuk panggilan perkhidmatan jauh. rsp, err := client.Hello(context.TODO(), &proto.HelloRequest{Name: "World"})
. 3. Kesimpulan
Prinsip asas dan contoh aplikasi rangka kerja go-micro telah diperkenalkan. Walaupun rangka kerja go-micro menyediakan penemuan perkhidmatan yang berkuasa, panggilan jauh, pengimbangan beban dan komponen lain, kita mesti memahami sepenuhnya pelaksanaan dalaman dan prinsip kerjanya untuk menggunakan rangka kerja tersebut dengan lebih baik. Dalam aplikasi praktikal, kita perlu mempertimbangkan faktor seperti keselamatan, prestasi dan ketersediaan untuk memastikan sistem itu stabil dan boleh dipercayai.
Atas ialah kandungan terperinci Bina sistem teragih dengan cekap: menggunakan rangka kerja go-micro. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!