102-谈谈微服务注册中心zookeeper&Eureka

首先,大家要明确一点微服务注册中心是一个重要的组件,解决的是服务的注册和发现的问题,而zookeeper,Eureka都只是其中一款落地实现的产品,再比如Nacos也是如此,所以关键是掌握注册中心的工作原理,组件的使用,诸如配置,安装,这些都是常规步骤,没有什么特别的。

那下面,我们来谈谈这两个注册中心的工作原理,如果对nacos刚兴趣,可以直接查看官网即可。

1,zookeeper

zookeeper的核心主要是包含两个部分:服务信息的管理和变更通知机制(watch)

所谓的服务注册,就是在zookeeper的服务器上创建一个节点,而且是临时节点,保存着服务的地址信息

为什么是临时节点?

因为一旦服务节点宕机,则zookeeper可以自动将该节点删除

所谓的服务发现,就是去获取zookeeper上面的节点信息,获取到提供该服务的地址列表信息

这样当消费者去调用服务提供者,就可以采用负载均衡策略,去访问其中一个提供者。

所谓监听机制,当服务提供者某个节点发生故障,这个时候服务端的临时节点会被删除,上层的父节点就相当发生了变化,所以可以基于监听机制通知客户端(服务消费者)当前服务列表发生变化了,客户端再次去获取最新的服务列表信息。

下面,我们以图片来说明

img

2,Eureka

1,包含两个组件

Eureka Server 注册中心服务端,提供了服务的注册和发现(相当于zookeeper的作用)

Eureka Client 注册中心客户端(相当于之前的生产者和消费者), 需要将本身提供的服务注册到EurekaServer

2,两个关键的时间参数

一个是每隔30s,客户端会发送心跳包给EurekaServer,告知健康状态,表示还活着;

一个是每隔30s,客户端会去找EurekaServer拉取最新的注册表信息,刷新本地的缓存列表;

img

3,两者集群模型的差别

注册中心作为微服务架构中非常关键的组件,所以其可用性非常重要,所以我们来简单说说其集群架构的区别

zookeeper,奇数台做集群,CP(强一致性)

eureka,只需要两台以上即可,AP(可用性)

CAP是分布式系统的基本参考原则,如果你之前对这个原则不了解,我们后续会再一篇文章来谈谈CAP变动。