工具安装
使用protoc生成代码,依赖两个插件:protoc-gen-go、protoc-gen-micro
- micro 工具 go get -u github.com/micro/micro
- go get -u github.com/micro/protoc-gen-micro
- protoc 直接在github上下载二进制文件
生成项目
D:\go\src\github.com\axengine\jvv>micro new github.com/axengine/jvv/demo
Creating service go.micro.srv.demo in D:\go\src\github.com\axengine\jvv\demo
生成的项目文件如下
.
├── main.go
├── plugin.go
├── handler
│ └── example.go
├── subscriber
│ └── example.go
├── proto\example
│ └── example.proto
├── Dockerfile
├── Makefile
└── README.md
生成代码
编辑proto文件,也可以使用默认的文件,注意路径
cd D:\go\src\github.com\axengine\jvv\demo
protoc --proto_path=. --go_out=. --micro_out=. proto/example/example.proto
micro指令
micro --registry_address=192.168.8.162:8500 list services
Tips
- 注册中心consul不支持集群,建议使用etcdv3
- 默认的pub/sub 采用http方式,丢消息风险非常高,可替代的有nats,nsq,redis等
- 服务间默认通信采用RPC
- 默认的selector是cache,算法是随机