Zookeeper学习系列(7)

Zookeeper场景描述node

在分布式的应用中,咱们常常同时启动多个server,调用方(client) 选择其中之一发起请求。分布式

分布式应用必须考虑高可用性和可扩展性:server的应用进程可能会崩溃。或者server自己可能也会dwon机。当server不够时,也有可能增长server的数量,总而言之,server列表并不是一成不变的,而是一直处于动态的增减中。server

那么client热河才能实时的更新server列表呢?解决的方案不少,Zookeeper是一个方案。进程


思路:io

启动server时候,在Zookeeper的某个znode(假设为/sgroup )下建立一个子阶段。所建立的子节点的类型应该为ephemeral,这样子依赖,若是server 进程崩溃或者serverdown机,与Zookeeper链接的 Session就结束了,那么其的全部建立的子节点会被 Zookeeper自动删除,当崩溃的server恢复后,或者新增server时候,一样须要在/sgroup 节点下建立新的子节点。cli


对于client。只需注册/sgroup 子节点的监听,当 。/sgroup 下的子节点增长或者减小,Zookeeper会通知client,此时client更新server列表。扩展

相关文章
相关标签/搜索