聊聊微服务的服务注册与发现
引言
聊起微服务的服务注册与发现,很多人立马就会脱口而出 zk、etcd、consul、eureka 这些组件,进而聊到 CAP 如何取舍,性能如何,高可用和容灾是怎么实现的。
在这之前,站在组件使用者的角度,我想先问这么几个问题:
- 注册的 IP 和端口怎么确定 ?
- 实现服务治理还需要注册哪些信息 ?
- 如何进行优雅的服务注册与服务下线 ?
- 注册服务的健康检查是如何做的 ?
- 当服务有节点退出或新的节点加入时,订阅者能不能及时收到通知 ?
- 我能方便地查看某个应用发布和订阅了哪些服务,以及所订阅的服务有哪些节点吗 ?
看完这些问题后,您也许会发现,对于服务注册与发现,首先应该关注的是服务注册发现本身的功能,然后才是性能和高可用。
一个好的服务注册发现中间件,应该是能完整地满足服务开发和治理的基础功能,然后才是性能和高可用。如果没有想清楚前面的功能,再高的可