一.实现一个go-micro的例子,整理例子先看图:
1.例子中,有两个微服务,服务Time,服务User.对外提供API层,这里使用了gin框架.
2.在服务user中,当API-user收到请求,向GetTimeOrAddUser发起RPC请求.
3.GetTimeOrAddUser会向Time服务中的GetUserTime发起RPC请求
4.RPC的服务都有client,server,通过client向server请求.
5.服务Time跟服务user相同.
6.所有RPC服务都通过ETCD去注册服务,发现服务,consul不能直接使用集群.
7.代码: https://github.com/zhongxuan123/go-micro-demo1
二.部署etcd
服务注册使用etcd,例子中都是在本地的,所以etcd直接127.0.0.1跑起来.
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.