Zookeeper与Eureka

Zookeeper和Eureka是两种常用的服务注册与发现工具。Zookeeper保证CP(一致性与分区容错),适用于分布式协同服务,但选举慢且不支持高可用。Eureka则强调AP(可用性与分区容错),提供高可用服务发现,支持自我保护模式,但不支持事件通知。两者各有优缺点,适用于不同的场景需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper:注册中心
特点
1.顺序一致性:同一客户端发出的请求最终会严格按照顺序被应用到zookeeper中
2.原子性:要么集群中的所有机器都应用到了某个事务中 要么全都没有应用(类似于MySQL事务)
3.单一系统映像:不管客户端连接到哪个zookeeper服务器上看到的数据模型都是一致的
4.可靠性:只要一次更改请求被应用后,就会进行持久化,直到下一次会覆盖
工作原理: 它的核心是原子广播 这个机制保证了各个服务之间的同步 实现它的协议是zab协议 这个协议有两种模式 恢复模式和广播模式 恢复模式即选主 广播模式即同步 当服务者启动或者在领导者崩溃的时候 zab就被选举出来 并且很多Server完成了和leader的状态同步以后恢复模式就结束了 状态同步保证了leader和server具有相同的系统状态
缺点: zk不是高可用的、选举慢、性能有限、无法进行有效的权限控制、很难避免数据不一致
优点: 如果生产者提供的物理机器坏掉了,或者一台tomcat服务器承受不住高并发时 可以通过Dubbo监控到可以针对这个生产者做一个集群处理 当消费者连接时间过长,则说明这个服务被可用,这个时候zookeeper就会暴露集群中可以用的服务

Eureka:
介绍: Spring-Cloud Euraka是Spring Cloud集合中一个组件,它是对Euraka的集成,用于服务注册和发现。Eureka是Netflix中的一个开源框架。它和 zookeeper、Consul一样,都是用于服务注册管理的
功能特性:
提供者:1.服务注册 2.服务续约 3.服务下线
消费者:1.获取服务 2.服务调用
服务注册中心:1.服务同步 2.失效剔除 3. 自我保护
特点: 支持高可用、支持Restful API、支持用户认证、提供保护模式解决网络分区问题、支持注册表缓存、提供健康检查
缺点: 不支持事件通知

Zookeeper与Eureka区别:
(1)Zookeeper是CP,分布式协同服务,突出一致性。对ZooKeeper的的每次请求都能得到一致的数据结果,但是无法保证每次访问服务可用性。如请求到来时,zookeer正在做leader选举,此时不能提供服务,即不满足A可用性。
(2)Euere是AP,高可用与可伸缩的Service发现服务,突出可用性。相对于Zookeeper而言,可能返回数据没有一致性,但是保证能够返回数据,服务是可用的。

说明:以上内容仅是个人理解 欢迎大佬补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值