zookeeper的“坑”

zookeeper常常在微服务系统中扮演核心的角色,我们在使用zookeeper时也遇到了一些容易犯的坑。比如某个时间突然发现rpc server流量没了,上去服务看了下zk连接还在,进一步发现临时节点没了...跟了下rpc server的日志看到,见截图:

参考下代码注释:
`
const (
StateUnknown State = -1
StateDisconnected State = 0
StateConnecting State = 1
StateAuthFailed State = 4
StateConnectedReadOnly State = 5
StateSaslAuthenticated State = 6
StateExpired State = -112

StateConnected  = State(100)
StateHasSession = State(101)

)

const (
FlagEphemeral = 1
FlagSequence = 2
)
`
可以看到,client断开连接后重连,session过期后也重新创建了。但是,server创建的临时节点消失了。原来,zookeeper的临时节点、watcher等都是和session绑定的!而一旦session过期,zookeeper server就会清除和session有关的这些状态和数据。client要做的就是重建连接,重新创建临时节点,重新watch。另外watch本身也有要注意的,收到事件通知后,需要重新注册watcher。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,891评论 18 139
  • 一、ZooKeeper的背景 1.1 认识ZooKeeper ZooKeeper---译名为“动物园管理员”。动物...
    algernoon阅读 9,128评论 1 106
  • ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(C...
    把爱放下会走更远阅读 21,946评论 1 18
  • ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于...
    rthsfjhtrj阅读 573评论 0 1
  • 下午翘班了。就是不想去。 听着音乐,捏着手机,却没有消息进来。我以为我不在意,我以为我可以一笑而过,可是事实是,我...
    山水白雲间阅读 327评论 0 0