【问题标题】:Detailed comparison between apache curator and etcd3apache curator和etcd3的详细对比
【发布时间】:2017-02-12 07:52:29
【问题描述】:

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

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

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

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

另外,etcd3zookeeper 使用两种不同的算法来达成共识,ZABraft,其中 raft 不太复杂。

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

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

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

提前致谢!

【问题讨论】:

  • 一个简单的澄清问题是您的客户端将使用哪种语言。我不相信 etcd 或 consul 有一个好的 Java 客户端。相反,我认为 ZooKeeper 没有一个好的 Go 客户端。
  • 不,client 或客户的语言实际上不是问题。如果它有一个好的 API,那么编写一个客户端只是时间问题。我关心的是proscons 每个实现都优于另一个。
  • “如果它有一个好的 API” - 大的“如果”。即使有一个好的 API,通常也有一些习语/食谱等可以使编写成功的应用程序变得困难或容易。想想没有好的驱动程序的数据库。

标签: java apache-zookeeper etcd apache-curator etcd3


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2015-09-29
    • 2012-07-06
    • 2011-03-31
    • 2016-01-27
    • 1970-01-01
    相关资源
    最近更新 更多