分布式服务架构中,应用根据业务来垂直分割成不同的子服务,随着访问流量的增加,单机的硬件能力受限,我们需要水平扩展多条实例,服务一多,就面临了一些问题,
服务之间相互调用,下游系统某个node宕机了,调用方如何监测到,绕开无效node,保证高可用
依赖的很多服务,依赖方需要维护很多的服务地址。
为了解决以上问题,引入了注册中心。
服务地址信息比如物流查询服务,部署了2台实例节点,分别 node1:http://192.168.22.13:4000/gw/delivery/query
node2:http://192.168.22.12:4001/gw/delivery/query
以上信息会存储在注册中心。
如果node1服务上线了,会在注册中心存储node1的信息
如果node1服务宕机了,会在注册中心打个不可用的tag;
如果node1服务下线了,会在注册中心剔除该服务的node1信息
基于上面原理,已经有很多成熟的方案了,比如dubbo的zookeeper,consul,euerka,etcd。
注册中心的产品中,大体分二类,