安装指南
依赖
我们需要服务发现, 所以我们启动 Consul (默认支持的服务发现), 或者通过 go-plugins 替换成你想要的服务发现模块.
Consul
brew install consul
consul agent -dev
或者
docker run consul
Multicast DNS
我们可以使用 Multicast DNS 进行零依赖的服务发现功能
将 --registry=mdns
传递给任何命令, 例如 micro --registry = mdns list services
Go Micro
Go Micro 是Go 开发微服务的 RPC 框架
安装
go get github.com/micro/go-micro
Protobuf
如果您使用代码生成, 您还需要使用 protoc-gen-go
go get github.com/micro/protobuf/{proto,protoc-gen-go}
可参阅 github.com/micro/go-micro 了解更多.
工具包
Micro 工具包提供了访问微服务的各种方法
安装
go get github.com/micro/micro
Docker
可用预制 docker images
docker pull microhq/micro
尝试 CLI
运行 greeter 服务
go get github.com/micro/examples/greeter/srv && srv
服务清单
$ micro list services
consul
go.micro.srv.greeter
获取服务
$ micro get service go.micro.srv.greeter
service go.micro.srv.greeter
version 1.0.0
Id Address Port Metadata
go.micro.srv.greeter-34c55534-368b-11e6-b732-68a86d0d36b6 192.168.1.66 62525 server=rpc,registry=consul,transport=http,broker=http
Endpoint: Say.Hello
Metadata: stream=false
Request: {
name string
}
Response: {
msg string
}
查询服务
$ micro query go.micro.srv.greeter Say.Hello '{"name": "John"}'
{
"msg": "Hello John"
}