首先,大家要明确一点微服务注册中心是一个重要的组件,解决的是服务的注册和发现的问题,而zookeeper,Eureka都只是其中一款落地实现的产品,再比如Nacos也是如此,所以关键是掌握注册中心的工作原理,组件的使用,诸如配置,安装,这些都是常规步骤,没有什么特别的。
那下面,我们来谈谈这两个注册中心的工作原理,如果对nacos刚兴趣,可以直接查看官网即可。
1,zookeeper
zookeeper的核心主要是包含两个部分:服务信息的管理和变更通知机制(watch)
所谓的服务注册,就是在zookeeper的服务器上创建一个节点,而且是临时节点,保存着服务的地址信息
为什么是临时节点?
因为一旦服务节点宕机,则zookeeper可以自动将该节点删除
所谓的服务发现,就是去获取zookeeper上面的节点信息,获取到提供该服务的地址列表信息
这样当消费者去调用服务提供者,就可以采用负载均衡策略,去访问其中一个提供者。
所谓监听机制,当服务提供者某个节点发生故障,这个时候服务端的临时节点会被删除,上层的父节点就相当发生了变化,所以可以基于监听机制通知客户端(服务消费者)当前服务列表发生变化了,客户端再次去获取最新的服务列表信息。
下面,我们以图片来说明
2,Eureka
1,包含两个组件
Eureka Server 注册中心服务端,提供了服务的注册和发现(相当于zookeeper的作用)
Eureka Client 注册中心客户端(相当于之前的生产者和消费者), 需要将本身提供的服务注册到EurekaServer
2,两个关键的时间参数
一个是每隔30s,客户端会发送心跳包给EurekaServer,告知健康状态,表示还活着;
一个是每隔30s,客户端会去找EurekaServer拉取最新的注册表信息,刷新本地的缓存列表;
3,两者集群模型的差别
注册中心作为微服务架构中非常关键的组件,所以其可用性非常重要,所以我们来简单说说其集群架构的区别
zookeeper,奇数台做集群,CP(强一致性)
eureka,只需要两台以上即可,AP(可用性)
CAP是分布式系统的基本参考原则,如果你之前对这个原则不了解,我们后续会再一篇文章来谈谈CAP