Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 57.3MB ·虚拟内存 1300.0MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Go Micro 是一个插件化的 RPC 开发框架,用于使用 Go 语言快速构建微服务。
测试 Go Micro 服务可以使用 micro 工具,比如调用 hello RPC 服务:
$ micro call go.micro.srv.hello Hello.Call '{"name": "aizws"}'
输出结果:
{ "msg": "Hello aizws" }
使用 Go Micro 客户端调用 hello 服务。以下为客户端程序 main.go:
package main import ( "context" "github.com/micro/go-micro/util/log" "github.com/micro/go-micro" hello "hello/proto/hello" ) func main() { // Create a new service // 创建一个新的服务,服务名为 go.micro.srv.hello service := micro.NewService() // Parse command line flags // 通过命令行参数或者插件初始化服务 service.Init() // Use the generated client stub // 通过客户端的桩创建 go.micro.srv.hello 服务客户端 helloService := hello.NewHelloService("go.micro.srv.hello",service.Client()) // Make request // 调用 RPC Call 方法 response, err := helloService.Call(context.Background(), &hello.Request{ Name: "aizws", }) if err != nil { log.Error(err) return } // Print result // 打印 RPC Call 调用结果 log.Info(response.Msg) }
输出结果:
2022-01-13 03:31:59.797103 I | Hello aizws
微服务在大多数场景下会部署为集群服务,为了使集群节点的访问能够均匀分布,就要求客户端使用负载均衡策略,能够均匀得访问每一台节点。Go Micro 提供了负载均衡插件 selector,为客户端提供了随机 Rand ...