一、介绍
eureka 和zookeeper 是我经常接触到的两个常见的注册中心中间件。一般情况,springcloud 项目都会用eureka做为注册中心,kafka用zk做为数据元数据管理和注册中心。
二、对比
- 集群结构:
zookeeper是leader follower主从结构,leader节点才可以进行写操作,follower负责同步数据和读:
eureka是peer对等架构,所有eureka节点是对等的,每个节点都可以进行数据读写。
2.数据一致性:
eureka 是AP架构,保证注册中心高可用,但不保证多个节点之间数据一致性,他只能保证服务列表在多个节点的最终一致 性
zookeeper是CP结构,CP保证保证数据一致性,leader节点写完数据,立刻会同步到follower节点,过半数节点写成功之后才算写数 据 成功。但是当leader节点挂了,整个zookeeper集群是不可用的,必须等到重新选举leader节点之后才可以提供服务。
3.时效性:
zookeeper时效性最好,服务实例挂了之后,zookeeper会立刻通知其他服务实例,其他服务实例会在很快的时间感知并把不可用实列剔除 调,
eureka时效性很差, 服务实例默