我是靠谱客的博主 忧郁老虎,最近开发中收集的这篇文章主要介绍eureka 为什么选用AP,为什么不需要选举算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在分布式领域中像zokeerper,etcd,这些应用都需要选主算法来选定主服务器,为什么eureka却不需要呢。

#CAP
在解释之前我们需要先了解下分布式领域的CAP理论,

  • C - Consistency 一致性
  • A - Availability 可用性
  • P - Partition tolerance 分区容忍性

CAP的理论提出这三者不可兼得,而p分区容忍性显然是不可或缺的。
#P

分区容忍性 表示分布式系统在一部分服务不可用时依然可以向外提供服务。

这显然是分布式应用的基础,所以只能在a和c上做文章了
#C

一致性 意思是,写操作之后的读操作,必须返回该值

要实现这一功能,那必须在写后同步到其它节点才算写入成功,这无疑降低了性能,也就是失去了A 可用性
#A

可用性 其实就是高可用,关注程序的性能,响应时间

要保证高可用必然要丢弃数据的一致性

eureka为什么选择ap,这跟他的功能有关,他只专注于服务注册和发现,并不会出现数据的竞态条件:
######竞态条件 有同时多个线程竞争同一数据,可能会发生数据不正确的问题

image.png
如图:每个client只会向一个eureka server注册,所以并不会出现数据竞态条件,eureka server只需要将其它节点的数据来取过来就好,并不会出现在别的节点拉取到和自己不一致的数据的问题。
就算出现了,数据不一致问题,比如一个client宕机后重启链接了其它节点。因为是用于服务注册,只要覆盖就旧数据就好了。
#####eureka保证的是最终一致性,最终所有eureka server中的数据会保持一致。

所以因为eureka专注于服务注册发现,可用放弃C来保证A,同时也不需要复杂的选举算法。性能也要高于etcd和zokeerper。

最后

以上就是忧郁老虎为你收集整理的eureka 为什么选用AP,为什么不需要选举算法的全部内容,希望文章能够帮你解决eureka 为什么选用AP,为什么不需要选举算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部