首页 > 其他分享 >Eureka和Zookeeper比较

Eureka和Zookeeper比较

时间:2022-12-14 12:00:46浏览次数:49  
标签:ZooKeeper Zookeeper Eureka 容错性 可用性 一致性 节点 比较

Spring Cloud中,除了可以使用Eureka作为注册中心外,还可以通过配置的方式使用Zookeeper作为注册中心。

ZooKeeper是Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

在分布式领域有一个很著名的CAP理论:一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。

一致性

是指数据在多个副本之间能够保持一致的特性,等同于所有节点访问同一份最新的数据副本。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。

可用性是指每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。

分区容错性是指分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。这3个特性中任何分布式系统只能保证两个。

由于分区容错性在分布式系统中是必须要保证的,因此我们只能在可用性和一致性之间进行权衡。

Eureka和Zookeeper最大的不同就是,Eureka保证的是可用性、分区容错性,而ZooKeeper保证的是一致性、分区容错性。

 

ZooKeeper中节点有主从之分,在ZooKeeper集群中,通常节点有多个,如果服务器节点启动或者运行过程中leader服务器宕机了,就会通过选举模式选出一个leader(“老大”),被称为Master“主节点”。

leader服务器为客户端提供读和写服务,在ZooKeeper中当其进入选举模式时,就无法正常对外提供服务。

 

而在Eureka中,集群节点的地位是相同的,虽不能保证一致性,但至少可以提供注册服务。

 

如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程,客户端请求会自动切换到新的节点。

当宕机的服务器恢复后,Eureka会再次将其纳入服务集群管理之中。

 

所以,Eureka作为单纯的服务注册中心要比Zookeeper更加“专业”。因为注册服务更重要的是可用性,我们可以接受短期内达不到一致性的状况。

标签:ZooKeeper,Zookeeper,Eureka,容错性,可用性,一致性,节点,比较
From: https://www.cnblogs.com/cnetsa/p/16981686.html

相关文章

  • Go语言使用场景 | go语言与其它开源语言比较 | Go WEB框架选型
    一、Go语言使用场景1.关于go语言2007年,受够了C++煎熬的Google首席软件工程师RobPike纠集RobertGriesemer和KenThompson两位牛人,决定创造一种新语言来取代C++,这就是Go......
  • Eureka REST API
    EurekaRESTAPI是指通过指定的URL来查询或操纵注册到EurekaServer的EurekaClient。Netflix官方在GitHub的Wiki上专门写了一篇文章“EurekaRESToperations”来介绍Eur......
  • Eureka安全认证
    Eureka负责服务治理,是微服务架构的核心基础,所以它的重要性不言而喻。默认情况下,只要知道地址和端口,就能访问和查看所有微服务的状态以及一些监控信息,缺乏一定的安全性。E......
  • 搭建Eureka的高可用集群
    用了注册中心后,所有的服务都要通过注册中心来进行信息交换。注册中心的稳定性非常重要,一旦注册中心掉线,将会影响到整个系统的稳定性。 所以在实际开发中,Eureka一般都是......
  • zookeeper+kafka
    一、Zookeeper概述1、Zookeeper定义Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。2、Zookeeper工作机制Zookeeper从设计模式角度来理解:......
  • Eureka的自我保护模式
    默认情况下,如果EurekaServer在90s内没有接收到某个微服务的心跳,EurekaServer将会移除该微服务。但是当发生网络故障时,微服务与EurekaServer之间无法正常通信,而微服务本......
  • [踩坑回顾]使用JS改变元素位置,操作css比较困难时,可更换元素的类名
    本人大菜鸟一枚,以此作为记录。使用到技术栈jQuery。开发中遇到某个元素需要在页面上切换left:0px为right:0px的需求,直接操作css会导致同时存在left和right属性,删除......
  • 搭建Eureka Client订单微服务
    在9.3节中我们搭建好了一个商品微服务,本节我们来搭建一个订单(order)微服务,实现简单的查询订单的功能。 通常订单只保存商品的ID,而我们在查询订单的时候需要看到商品的详......
  • 搭建Eureka Client商品微服务
     我们搭建好了EurekaServer,本节我们来搭建一个EurekaClient商品(goods)微服务,实现简单的查询商品的功能。我们使用IDEA创建一个名为goods的SpringBoot项目,如图9-4所示。......
  • 了解Eureka服务注册与发现。
    Eureka分为EurekaServer和EurekaClient,以实现服务注册以及服务发现的功能。  当其是EurekaServer时,便是服务端,也叫服务注册中心,所有的客户端会向其注册。  注......