面试:关于Zookeeper注册节点的上线和掉线

Zookeeper中有一个重要的部件Monitor(监控中心),它是Dubbo中服务治理体系中的重要一环。

监控中心在启动的时候,会通过Zookeeper的/dubbo/com.foo.BarService节点来获取所有服务提供者和服务消费者的URL地址,并且注册Watcher来监听其子节点的变换。

需要注意的是所有服务提供者在Zookeeper上创建的节点都是临时节点,因为临时节点的生命周期和客户端会话相关。比如一旦某个服务提供者所在的机器出现了宕机,导致该服务提供者无法对外提供服务时,该节点会自动从zookeeper上删除,这样服务消费者和监控中心就能感知到服务提供者的变化,从而不会出现消费者向故障服务器进行请求的情况。

 

那如果服务提供者重新上线了呢,需要提供Zookeeper掉线自动重新注册的功能。

Zookeeper的开源框架curator提供了掉线重连的机制,需要添加一个实现了ConnectionStateListener接口的类,并应用到CuratorFramework对象上即可,一旦重新上线,注册中心就能感知到。

链接

posted @ 2022-04-09 11:03  Peterxiazhen  阅读(71)  评论(0编辑  收藏  举报