一.實現一個go-micro的例子,整理例子先看圖:git
1.例子中,有兩個微服務,服務Time,服務User.對外提供API層,這裏使用了gin框架.github
2.在服務user中,當API-user收到請求,向GetTimeOrAddUser發起RPC請求.golang
3.GetTimeOrAddUser會向Time服務中的GetUserTime發起RPC請求
bash
4.RPC的服務都有client,server,經過client向server請求.框架
5.服務Time跟服務user相同.微服務
6.全部RPC服務都經過ETCD去註冊服務,發現服務,consul不能直接使用集羣.spa
7.代碼: https://github.com/zhongxuan123/go-micro-demo1code
二.部署etcdcdn
服務註冊使用etcd,例子中都是在本地的,因此etcd直接127.0.0.1跑起來.server
1.mac安裝:
brew install etcd
2.下載golang的包:
go get go.etcd.io/etcd/clientv3
複製代碼
可能會超時,或者直接git clone下來再放到$GOPATH/src/go.etcd.io/etcd上
git clone https://github.com/etcd-io/etcd.git
3.啓動etcd:
直接etcd
三.編寫PB文件
1.pb須要的東西能夠看下,go-micro入門的文章.
2.