用 etcd 做服务发现,与 ZooKeeper 有何不同?
查看完整题解
参考回答
直接回答
etcd 常用键前缀保存服务地址,Lease 绑定实例生存期,Watch 跟踪变化。ZooKeeper 常用路径节点和会话临时节点来组织服务实例。
讲清原理
etcd 数据结构是平坦键空间,有前缀范围和按 revision 续读的事件流。ZooKeeper 是树形 znode,使用经典 Watch 时,通知到达后通常要重新读取并注册监听,较新版本还有持久 Watch。
例子与易错点
实例退出时,etcd 消费者可以收到某个键的删除事件。ZooKeeper 子节点 Watch 则常提醒“列表变化了”,消费者重新列出需要的地址。
延伸阅读 怎样在 etcd 搭一个服务发现流程? · etcd 与 ZooKeeper 的模型有哪些差异? · etcd Lease 怎么给一组键设置失效时间?
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。