分布式框架

名称优点缺点接口一致性算法语言
zookeeper1.功能强大,不仅仅只是服务发现 2.提供watcher机制能实时获取服务提供者的状态 3.dubbo等框架支持1.没有健康检查 2.需在服务中集成sdk,复杂度高 3.不支持多数据中心sdkPaxosjava
consul1.简单易用,不需要集成sdk 2.自带健康检查 3.支持多数据中心 4.提供web管理界面1.不能实时获取服务信息的变化通知http/dnsRaftgo
etcd1.简单易用,不需要集成sdk 2.可配置性强1.没有健康检查 2.需配合第三方工具一起完成服务发现 3.不支持多数据中心httpRaftgo

相较之下,ZooKeeper有如下缺点:

  1. 复杂。ZooKeeper的部署维护复杂,管理员需要掌握一系列的知识和技能;而Paxos强一致性算法也是素来以复杂难懂而闻名于世;另外,ZooKeeper的使用也比较复杂,需要安装客户端,官方只提供了Java和C两种语言的接口。
  2. Java编写。这里不是对Java有偏见,而是Java本身就偏向于重型应用,它会引入大量的依赖。而运维人员则普遍希望保持强一致、高可用的机器集群尽可能简单,维护起来也不易出错。
  3. 发展缓慢。Apache基金会项目特有的“Apache Way”在开源界饱受争议,其中一大原因就是由于基金会庞大的结构以及松散的管理导致项目发展缓慢。

而etcd作为一个后起之秀,其优点也很明显。

  1. 简单。使用Go语言编写部署简单;使用HTTP作为接口使用简单;使用Raft算法保证强一致性让用户易于理解
  2. 数据持久化。etcd默认数据一更新就进行持久化。
  3. 安全。etcd支持SSL客户端安全认证。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×