项目场景:
使用go-zero进行微服务开发
使用go-zero进行微服务开发的时候一定需要etcd吗?不一定,但尽量使用,不使用会有麻烦
如果单纯想部署个ETCD服务让go-zero跑起来,那么请看这篇文章吧。Docker部署ETCD服务
问题描述
Transform:
Etcd:
Hosts:
- localhost:2379
Key: transform.rpc
为什么需要使用etcd
因为使用etcd我们才能找到服务。etcd的作用是什么?可以从官网的图来看,就是
服务注册与发现
深入了解:
能不能不用etcd?能
刚刚解释了etcd的作用就是服务注册与发现,使用他去找到对应的服务
我们直接指定服务所在的地址和端口不也行吗?作者试过,是可以的
UserRpcConf:
Endpoints:
- 127.0.0.1:8080
NonBlock: true
上面的代码就是指定服务所在的地址和端口,不使用etcd也是可以完成的,but!!!!
会有个问题就是,这样做出来的微服务不符合某些场景了
,例如我们的一台服务器,短时间内没办法重启,那么我们可以使用其他的服务器运行我们的微服务,但如果使用endpoint的方式就不行了,因为endpoint方式是固定了服务的地址和端口,在其他的服务器上面运行他就发现不了了。微服务的一个优点:部署耦合性低,易于部署
话说回来,微服务的核心是啥呀?微服务的概念里面就有服务注册与发现。所以不能使用endpoint的方式去开发微服务,方便测试的时候可以这样做