微服务架构实践
├── members 会员服务
│ ├── handler
│ ├── proto
│ │ └── members
├── orders 订单系统
│ ├── handler
│ ├── proto
│ │ └── orders
└── products 商品系统
├── handler
├── proto
│ └── products
系统调用关系
members grpc提供 user/info 调用 orders/list 查看订单列表
products 调用 user/info grpc提供 product/info
orders 调用 user/info和product/info grpc提供 order/list
- Gin框架
- 引入ZipKin 分布式链路追踪
- GRpc,Gateway
- Etcd
- ApiGateway
生成pb文件和micro文件
cd members && make proto
or
protoc --proto_path=. --micro_out=Mproto/imports/api.proto=github.com/micro/go-micro/v2/api/proto:. --go_out=Mproto/imports/api.proto=github.com/micro/go-micro/v2/api/proto:. proto/members/members.proto
### micro cmd
micro server &
micro env set local
» micro env
* local none
server 127.0.0.1:8081
platform proxy.micro.mu
生成模板文件
micro new members
subscriber是用来订阅服务的,目前用不到可以删除,然后可以删除go.mod之类的文件,自己go mod init去生成,v3版本默认已经去掉这个目录
micro run members
micro status
列出已经注册的服务 或者 micro web 通过浏览器界面查看
» micro list services
go.micro.service.members
go.micro.service.orders
go.micro.service.products
go run main.go plugin.go --registry=etcd --registry_address=localhost:2379 micro web --registry=etcd --registry_address=127.0.0.1:2379
micro --registry etcd --registry_address 127.0.0.1:2379 list services micro-grpc-members-service micro-web-members-service
获取服务信息 micro --registry etcd --registry_address 127.0.0.1:2379 get service micro-web-members-service
调用服务 micro --registry etcd --registry_address 127.0.0.1:2379 call micro-grpc-members-service Members.Call {"name":"peanut"} 1 ↵ { "msg": "Hello peanut" }
micro参考文档: