Registration and Discovery - Spring

关于Spring Cloud支持的注册发现服务,一直想了解一下对比情况,今天无意间发现这个对比文章,简单直接,可以给你一个直观的初步认识。
转载原地址:服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
这里仅贴出总结表格,稍作调整。其它内容请参见原文

Feature consul zookeeper etcd euerka
服务健康检查 服务状态,内存,硬盘等 (弱)长连接,keepalive 连接心跳 可配支持
多数据中心 支持 — — —
KV存储服务 支持 支持 支持 —
一致性 raft zab raft —
CAP ca cp cp ap
使用接口(多语言能力) 支持http和dns 客户端 http/grpc http(sidecar)
Watch支持 全量/支持long polling 支持 支持 long polling 支持 long polling/大部分增量
自身监控 metrics — metrics metrics
安全 acl/https acl https支持(弱) —
Spring Cloud集成 已支持 已支持 已支持 已支持,2.0闭源

感谢原作者的分享,并贴出与其文中一处不一样的观点,zookeeper的一致性协议不是Paxos,应该是ZAB。
此观点依据:The core consensus algorithm of ZooKeeper is not Paxos

另外,euerka宣布2.0闭源后,目前来看Consul是替代euerka一个不错的方案。

CAP 简单解释

  • 一致性(Consistency) (所有节点在同一时间具有相同的数据,客户端请求到同样的数据结果)
  • 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
  • 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)

CAP 不可能全都同时满足,这个已经被证明过了,这里先记住结论吧,具体解释网上文章很多。

Raft 演示

相比Paxos,raft更容易被人理解和接受,看一下这个演示动画吧,简单直观。