ZK客户端的缺陷

  1. 无法支持ZK集群地址的动态变更。客户端创建时ZK集群的地址就写死在程序中了,当ZK集群发生整体迁移或者个别机器发生变更时,会导致大量客户端应用跟着一起变更。
  2. 无法支持同机房优先策略。为了实现容灾,ZK集群通常会将集群中的机器分开部署在多个机房中,这就会产生网络延时问题。为了最大程度低降低延时,客户端与ZK服务器建立连接时,需要优先筛选同机房的机器。

改造方案

  1. ZK集群地址变更时能够通过Diamond/Configserver等主动通知到ZK客户端,或者ZK客户端不断定时查询ZK集群地址是否发生变更;
  2. 对ZK集群地址按照机房分组,并且赋予优先级,延迟越低的机房对应的优先级越高;

ZK客户端升级方案

相关文章: