Springcloud 的Eureka和ZooKeeper比较

关于CAP理论,可以去看看阮一峰的文章[http://www.ruanyifeng.com/blog/2018/07/cap.html]

C(一致性)A(可用性)P(分区容错性)

ZooKeeper:

zookeeper保证了cp(一致性、分区容错性),但是作为服务注册中心,我们可以容忍注册中心返回的是几分钟以前的注册信息。但是服务中心却必须保证可用性,

即服务注册中心对于高可用性的需求高于一致性。对于可用性,zookeeper有一个leader选举方案。当master主节点宕机与其他节点失去联系时,其他节点会重

新进行Leader选举,选出新的master节点。然而选举耗时过长,一般为30~120S,并且整个选举期间,整个zookeeper集群是无法使用的。

Eureka:

eureka保证了ap(可用性、分区容错性),eureka每一个节点都是平等的,几个节点宕机不会影响正常节点的工作。剩余的正常节点依旧可以提供服务注册和查询。

并且,当客户端向某节点注册服务时,注册失败或者超时,则会自动切换到其他节点。只要有一台eureka节点还正常工作,就能保证注册服务的可用。但是对于服

务信息的同步则不能保证一致性(不能保证强一致性,但是最终一致)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内85%的节点都没有正常心跳(不可用)

那么Eureka就认为客户端与注册中心之间出现了网络故障,此时会出现以下几种情况:

1、Eureka不再从注册列表中移除因为长时间没收到心跳而应该过期的服务

2、Eureka仍然能够接收新服务的注册和查询请求,但是不会被同步到其他节点上(保证当前节点的可用性)

3、当网络稳定后,当前实例新注册的服务会被同步到其他节点

因此,Eureka能够保证注册中心的高可用性,而不会像zookeeper一样直接集群瘫痪

原文地址:https://www.cnblogs.com/vincent928/p/10084176.html

时间: 2024-10-18 13:42:44

Springcloud 的Eureka和ZooKeeper比较的相关文章

springcloud组件-eureka

1.eureka什么? 2.eureka单节点如何使用? 3.eureka集群配置? 4.zookeeper的cp性与eureka的ap性 5.关于eureka的自我保护机制 1.eureka是什么? springcloud中的eureka就相当于之前dubbo中的zookeeper,也是一个注册中心. 一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移,并且支持集群部署. 2.eureka单节点? 以自身所写的项目来说: 首先新建一个父项目Springcloud,分别去新

Spring-Cloud组件eureka

eureka是什么? eureka是Netflix的子模块之一,也是一个核心的模块,eureka里有2个组件,一个是EurekaServer(一个独立的项目) 这个是用于定位服务以实现中间层服务器的负载平衡和故障转移,另一个便是EurekaClient(我们的微服务) 它是用于与Server交互的,可以使得交互变得非常简单:只需要通过服务标识符即可拿到服务. eureka与Spring-Cloud有什么关系? Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现

eureka 和zookeeper 区别 优势【转】

作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡.在此Zookeeper保证的是CP, 而Eureka则是AP. 4.1 Zookeeper保证CP 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用.也就是说,服务注册功能对可用性的要求要高于一致性.但

Eureka与Zookeeper的区别

作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性P是在分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡. 因此 Zookeeper保证的是CP Eureka则是AP. Zookeeper保证CP 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用.也就是说,服务注册功能对可用性的要求要高于一致性.但是zk

spring-cloud配置eureka服务端

spring-cloud配置eureka服务端 eureka用来发现其他程序 依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&

spring-cloud配置eureka客户端

spring-cloud配置eureka客户端 eureka用来发现其他程序 需要提前配置eureka服务端,具体看 https://www.cnblogs.com/ye-hcj/p/10292944.html 依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h

【广州】springcloudの核心组件Eureka、Ribbon、Feign、Hystrix、...

springcloudの核心组件Eureka.Ribbon.Feign.Hystrix.Zuul 看了一篇关于springcloud核心组件的实例讲解,分析的简单透彻,更好的明白组件间的关系,记录下来. 各个组件角色扮演: Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里 Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个

eureka和ZooKeeper的区别

背景 在这边文章 中,我们将用我们在实践中遇到的问题来说明,为什么使用ZooKeeper做Service发现服务是个错误. 服务部署环境 让我们从头开始梳理.我们在部署服务的时候,应该首先考虑服务部署的平台(平台环境),然后才能考虑平台上跑的软件 系统或者如何在选定的平台上自己构建一套系统.例如,对于云部署平台来说,平台在硬件层面的伸缩(注:作者应该指的是系统的冗余性设计,即系统遇到单点失 效问题,能够快速切换到其他节点完成任务)与如何应对网络故障是首先要考虑的.当你的服务运行在大量服务器构建的

SpringCloud之Eureka:集群搭建

上篇文章<SpringCloud之Eureka:服务发布与调用例子>实现了一个简单例子,这次对其进行改造,运行两个服务器实例.两个服务提供者实例,服务调用者请求服务,使其可以进行集群部署. 集群结构如下图所示. 由于开发环境只有一台电脑,要构建集群,需要修改hosts文件,在里面添加主机名映射. 127.0.0.1 slave1 slave2 一.服务器端 1.创建项目 开发工具:IntelliJ IDEA 2019.2.2IDEA中创建一个新的SpringBoot项目,名称为“first-c