spring cloud 之 -- eureka vs consul,该选择谁?

0--前言

  spring cloud的服务注册中心,该选择谁?在选择前,我们首先需要来了解下分布式的CAP定理:

  所谓CAP,是指:

  Consistency:一致性;就是在分布式系统中的所有数据备份,在同一时刻是否同样的值

  Availability:可用性;就是负载过大后,集群整体是否还能响应客户端的读写请求

  Partition tolerance :分区容错性,就是高可用性;一个节点挂了,并不影响其它的节点

  三者不可能同时满足,最多只能满足其中两项;

1-- eureka vs consul

  在分布式系统中,P是一定要满足的,不满足P是不可接受的;那么在C一致性和A可用性之间,就存在取舍。很显然,更多时候,我们更看重A可用性,而不需要实时的一致性,只需要最终一致即可;所以,满足AP更符合绝大多数项目的实际;

  Zookeeper和Consul :满足CP,保证了一致性,集群搭建的时候,某个节点失效,则会进行选举行的leader,或者半数以上节点不可用,则无法提供服务,因此可用性无法满足

  Eureka:满足AP,无主从节点,一个节点挂了,自动切换其他节点可以使用,去中心化

  从实际而言,一般除了一些特殊行业需要强调C一致性(例如金融、银行)以外,其他的系统更注重A可用性,所以:

2--结论:该选择谁?

  我们很不喜欢那些模棱两可万金油般的的结论,对比来对比去,让大家纠结来纠结去;我们可以很明确的给你下个结论:

  对于金融类似的特殊行业有C一致性的强烈需求的,用Consul ;

  其他的,统统用Eureka;

PS:题外话:关于Eureka闭源,是2.X闭源,但2.X从未发布,官方最新的版本是1.9,所以不要受额外的消息影响,大胆使用合适的。

(0)

相关推荐

  • 分布式系统的CAP定理

    CAP定理|理论 在一个分布式系统中, Consistency(数据一致性) Availability(服务可用性) Partition tolerance(分区容错性) 三者不可兼得,最多只能同时满 ...

  • 进来抄作业:分布式系统中保证高可用性的常用经验

    系统可用性指标 系统可用性指标简单来将就是系统可用时间与总运行时间之比 Availability=MTTF/(MTTF+MTTRMTTF) MTTF 是 Mean Time To Failure,指平 ...

  • 万字长文,助你吃透Eureka服务发现机制!

    前言 在前面几篇系列文章中,我们对微服务的基本概念.微服务的技术生态等,做了简单的阐述.对于分布式系统或微服务,服务发现是最基础.最核心.最不可缺的能力.然而许多人对服务发现有一种说不清,道不明,似懂 ...

  • Spring Cloud 系列之 Netflix Eureka 注册中心

    服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串.路由信息等.服务注册中心是微服务架构中最基础的设施之一. 在微服务架构流行之前,注册中心 ...

  • Spring Cloud 系列之 Consul 注册中心

    Netflix Eureka 2.X https://github.com/Netflix/eureka/wiki 官方宣告停止开发,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka ...

  • Spring Cloud Eureka 服务实现不停机(Zero

    问题 互联网产品高速迭代,通常伴随着高频次的版本发布.部署新版上线需要重启服务,直接 kill 服务进程可能会造成服务短暂不可用,从而影响到正在使用的用户. Spring Cloud 项目中一般会用到 ...

  • spring cloud微服务快速教程之(二)服务注册与发现 eureka

    0.为什么需要eureka 当我们从当体系统拆分为多个独立服务项目之后,如果aaa.com/uer.aaa.com/order;:相互之间调用,如果只是一个服务一个实例,那还可以直接通过固定地址(如h ...

  • 普通springcloud eureka 和 spring cloud Alibaba nacos 注册中心

     -------------------------------------普通springcloud eureka   1 .eureka  注册中心:做了两个eureka服务,以此类推可以做多个, ...

  • 一篇文章搞懂 Spring Cloud 是什么

    概念定义 提起微服务,不得不提 Spring Cloud 全家桶系列,Spring Cloud 是一个服务治理平台,是若干个框架的集合,提供了全套的分布式系统解决方案.包含了:服务注册与发现.配置中心 ...

  • Spring Cloud 系列之 Feign 声明式服务调用(一)

    什么是 Feign Feign 是 Spring Cloud Netflix 组件中的一个轻量级 RESTful 的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了 Ribb ...

  • spring cloud Feign使用@RequestLine注解问题

    来源:https://blog.csdn.net/zxl646801924/article/details/80626522 spring boot 项目需要调用其它项目的接口试使用spring cl ...

  • Spring Cloud OpenFeign 动态Url

    版权声明:本文为CSDN博主「markix」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接: https://blog.csdn.net/qq_31772 ...