这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论:

Feature

Consul

zookeeper

etcd

euerka

服务健康检查

服务状态,内存,硬盘等

(弱)长连接,keepalive

连接心跳

可配支持

多数据中心

支持

kv存储服务

支持

支持

支持

一致性

raft

paxos

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集成

已支持

已支持

已支持

已支持

  • 服务的健康检查

Euraka 使用时需要显式配置健康检查支持;Zookeeper,Etcd 则在失去了和服务进程的连接情况下任务不健康,而 Consul 相对更为详细点,比如内存是否已使用了90%,文件系统的空间是不是快不足了。

  • 多数据中心支持

Consul 通过 WAN 的 Gossip 协议,完成跨数据中心的同步;而且其他的产品则需要额外的开发工作来实现;

  • KV 存储服务

除了 Eureka ,其他几款都能够对外支持 k-v 的存储服务,所以后面会讲到这几款产品追求高一致性的重要原因。而提供存储服务,也能够较好的转化为动态配置服务哦。

  • 产品设计中 CAP 理论的取舍

Eureka 典型的 AP,作为分布式场景下的服务发现的产品较为合适,服务发现场景的可用性优先级较高,一致性并不是特别致命。其次 CA 类型的场景 Consul,也能提供较高的可用性,并能 k-v store 服务保证一致性。 而Zookeeper,Etcd则是CP类型 牺牲可用性,在服务发现场景并没太大优势;

  • 多语言能力与对外提供服务的接入协议

Zookeeper的跨语言支持较弱,其他几款支持 http11 提供接入的可能。Euraka 一般通过 sidecar的方式提供多语言客户端的接入支持。Etcd 还提供了Grpc的支持。 Consul除了标准的Rest服务api,还提供了DNS的支持。

  • Watch的支持(客户端观察到服务提供者变化)

Zookeeper 支持服务器端推送变化,Eureka 2.0(正在开发中)也计划支持。 Eureka 1,Consul,Etcd则都通过长轮询的方式来实现变化的感知;

  • 自身集群的监控

除了 Zookeeper ,其他几款都默认支持 metrics,运维者可以搜集并报警这些度量信息达到监控目的;

  • 安全

Consul,Zookeeper 支持ACL,另外 Consul,Etcd 支持安全通道https.

  • Spring Cloud的集成

目前都有相对应的 boot starter,提供了集成能力。

总的来看,目前Consul 自身功能,和 spring cloud 对其集成的支持都相对较为完善,而且运维的复杂度较为简单(没有详细列出讨论),Eureka 设计上比较符合场景,但还需持续的完善。

更多详细对比:

https://cloud.tencent.com/developer/article/1491107

Consul etcd ZooKeeper euerka 对比相关推荐

  1. 服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka

    平时经常用到的服务发现的产品进行下特性的对比,首先看下结论: Feature Consul zookeeper etcd euerka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,keepal ...

  2. 服务发现的基本原理与比较:Eureka vs Consul vs Zookeeper

    前言 在云计算和容器化技术发展火热的当下,对于微服务架构,服务注册与发现组件是必不可少的.在传统的服务架构中,服务的规模处于运维人员的可控范围内.当部署服务的多个节点时,一般使用静态配置的方式实现服务 ...

  3. 服务发现框架选型,Consul还是Zookeeper还是etcd

    https://www.servercoder.com/2018/03/30/consul-vs-zookeeper-etcd/ 背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太 ...

  4. Consul和ZooKeeper的区别

    Consul是一个在国外流行的服务发现和配置共享的服务软件.本文翻译自Consul的官方文档,文中重点讲述:在与主流同类软件ZooKeeper.Doozerd以及Etcd比较时,Consul的优势所在 ...

  5. redis分布式锁的安全性及与zookeeper的对比

    上篇 网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词"Redis 分布式锁"随便到哪个搜索引擎上去搜索一下就知道了.这些文章的思路大体相近,给出的实现算法也 ...

  6. docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...

    编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...

  7. 基于 Docker 的微服务架构

    基于 Docker 的微服务架构-分布式企业级实践 前言 Microservice 和 Docker 服务发现模式 客户端发现模式 Netflix-Eureka 服务端发现模式 Consul Etcd ...

  8. 生成全局唯一ID的3个思路,来自一个资深架构师的总结

    标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...

  9. 微服务架构下该如何技术选型呢?

    点击上方"程序猿技术大咖",关注并选择"设为星标" 回复"加群"获取入群讨论资格! 一.前言 为了实现基于微服务开发的产品,或者说为了将单体 ...

最新文章

  1. 图灵书单——程序员的算法
  2. webpack4.0打包优化策略(二)
  3. 皮一皮:中国好男友?
  4. html复制文件到目录,复制指定目录下的全部文件到另一个目录中
  5. 1 Orchard 入门篇-Orchard 基本概念
  6. 异构图-GTN(Graph Transformer Networks)
  7. 11月8日下午Jquery取属性值(复选框、下拉列表、单选按钮)、做全选按钮、JSON存储、去空格...
  8. web 项目集成福昕_项目学生:Web服务集成
  9. java数组排序冒泡排序_java数组常见的排序——选择排序和冒泡排序
  10. 【笔记】西门子1200PLC和V90伺服电机连接
  11. python数据结构与算法 pdf_『python核心编程pdf』数据结构与算法 Python语言描述
  12. 教科书级别的软件推荐
  13. drozer could not find java_Drozer-Android安全测试
  14. html div 字体向左自动,在css中怎样设置字体靠左?
  15. Ubuntu迅雷下载工具安装使用
  16. php ipa 版本定制,自建IOS企业包ipa包 下载服务
  17. Excel 2010 VBA 入门 100 将xls格式工作簿批量转换为xlsx格式
  18. 编译可在Android上运行的qemu
  19. js异步和同步的区别
  20. 长城云计算机如何重装系统,重装系统怎么装,这个方法一学就会

热门文章

  1. SQL中的left join与right join
  2. 在ubuntu下安装memcache
  3. 操作系统实验报告5:进程的创建和终止
  4. [python爬虫] 招聘信息定时系统 (二).调用pyinstaller包生成exe文件
  5. 【数据结构与算法】之深入解析“太平洋大西洋水流问题”的求解思路与算法示例
  6. Scrapy + Redis 分布式爬取58同城北京全站二手房数据
  7. pip通过阿里源安装
  8. 2017 年全国大学生电子设计竞赛试题——四旋翼自主飞行器探测跟踪系统(C 题)【本科组】2
  9. 【机器视觉】 convert_vector_to_tuple算子
  10. 【ARM】Tiny4412裸板编程之MMU简介