------------------------------------
go get github.com/micro/micro/v2 //会在GOPATH的bin目录下安装一个micro将其路径加入环境变量
micro --version查看是否安装成功
brew install etcd
# install
brew install etcd
# run
etcd
# Use flag
micro --registry=etcd list services
# Use env var
MICRO_REGISTRY=etcd micro list services`
#指定etcd不在同一主机上的地址。
MICRO_REGISTRY_ADDRESS=127.0.0.1:2379
# install protobuf 本机已安装,故注释
#brew install protobuf
# install protoc-gen-go
#go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
# install protoc-gen-micro
#go get -u github.com/micro/protoc-gen-micro/v2
##生成示例模板
micro new github.com/micro/example
##该命令将输出
#example/
# Dockerfile # A template docker file
# README.md # A readme with command used
# handler/ # Example rpc handler
# main.go # The main Go program
# proto/ # Protobuf directory
# subscriber/ # Example pubsub Subscriber##
#cd 到 example目录
protoc --proto_path=. --micro_out=. --go_out=. proto/example/example.proto
# cd into your service directory
cd github.com/micro/example
# run the service
micro run service --local ##linux未通过
##启动模板服务
go run main.go
##查看到 go.micro.srv.example
micro list services
##输出量
service go.micro.srv.example
version latest
micro get service go.micro.srv.example
通过CLI进行RPC调用。查询以json的形式发送。
micro call go.micro.srv.example Example.Call '{"name": "John"}'
输出量
{
"msg": "Hello John"
}
MICRO_API_HANDLER=rpc \
MICRO_API_NAMESPACE=go.micro.srv \
micro api
使用json向api发出POST请求
curl -XPOST -H 'Content-Type: application/json' -d '{"name": "John"}' http://localhost:8080/example/call
输出量
{"msg":"Hello John"}