当前位置: 移动技术网 > IT编程>软件设计>架构 > spring cloud 之 -- eureka vs consul,该选择谁?

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

2019年10月09日  | 移动技术网IT编程  | 我要评论
0--前言 spring cloud的服务注册中心,该选择谁?在选择前,我们首先需要来了解下分布式的CAP定理: 所谓CAP,是指: Consistency:一致性;就是在分布式系统中的所有数据备份,在同一时刻是否同样的值 Availability:可用性;就是负载过大后,集群整体是否还能响应客户端 ...

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,所以不要受额外的消息影响,大胆使用合适的。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网