欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Go Micro 使用 RPC
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 负载均衡
微服务在大多数场景下会部署为集群服务,为了使集群节点的访问能够均匀分布,就要求客户端使用负载均衡策略,能够均匀得访问每一台节点。Go Micro 提供了负载均衡插件 selector,为客户端提供了随机 Rand ...
AI 中文社