采用zookeeper的EPHEMERAL节点机制实现服务集群的陷阱

笔者在一个Websocket中间件产品(Apush,https://market.aliyun.com/products/56928004/cmapi020699.html#sku=yuncode1469900000)的集群管理中使用了zk的EPHEMERAL节点机制。
在编码过程中发现很多可能存在的陷阱,毛估估,第一次使用zk来实现集群管理的人应该有80%以上会掉坑,有些坑比较隐蔽,在网络问题或者异常的场景时才会出现,可能很长一段时间才会暴露出来。

1、不处理zk的连接状态变化事件导致zk客户端断开后与zk服务器集群没有重连。后果:连接丢失后EPHEMERAL节点会删除并且客户端watch丢失。

此坑不深,稍微注意一下还是容易发现的,并且采用Curator会减少此类问题的发生,不是完全避免,具体见第6个坑。

zk客户端如果和某台zk服务器断开,会主动尝试与zk集群中其他服务器重新连接,直到sessiontimeout,需要考虑极端的情况下出现sessiontimeout的处理。
zk客户端和zk服务器断开时会收到state为Disconnected的连接事件,此事件一般可以不处理,此事件后续会跟Expired状态的连接事件或者synconne

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值