3

我浏览了etcd3最新版本(2016 年 6 月 30 日发布)的文档,其中有很多改进etcd2。它包括,

  • 通过单个 TCP 连接多路复用流式监视
  • 增量快照以避免在创建快照时性能下降。
  • grpc调用以提高客户端的性能
  • 多路复用流租赁以减少网络使用。

当谈到在apache zookeeper之上编写的apache curator时,它的优势在于它是一个可靠、成熟的项目,有许多活跃的客户在生产中使用它。

Zookeeper 每个 watch 使用单独的 tcp 连接,每个租约使用单独的 tcp 连接。此外,zookeeper 的 watch 服务每个 watch 请求只通知一个事件,如果我们要持续监视特定节点,我们必须发出另一个 watch 请求。由于etcd3使用多路复用流,它不会用过多的 tcp 连接耗尽网络。

此外,etcd3使用zookeeper两种不同的算法来达成共识,ZAB并且raftraft 不太复杂。

我想实施distributed locks, (use) watches and need to write a mechanism to share commands throughout the cluster using the watch api. 此实现将插入到用 java 编写的 ESB。

现在我的问题是,我应该为我的实现选择哪一个(curator/etcd3),为什么?

我想看到一个很好的解释,因为我找不到这两种实现的直接比较。

提前致谢!

4

1 回答 1

0

由于找不到好的答案,我对这两种方案都进行了一些搜索,并编写了Apache Zookeeper vs etcd3。希望这会帮助其他也有我的问题的人。

于 2017-07-12T09:12:27.587 回答