Soul网关源码学习07

Soul网关源码学习07

Soul数据同步

Soul基于 zookeeper 发布订阅的模式实现插件、选择器、元数据的同步,多个订阅者同时监听一个主题对象,当主题对象在发生变化时,会通知所有的订阅者对象,使其能够自动更新实现数据的同步。

Zookeeper

zookeezper 是一个分布式数据一致性的解决方案,基于它可以实现如数据发布/订阅、分布式协调、集群管理、分布式锁、分布式队列等功能,数据模型=文件系统+通知机制。实现了类似文件系统的树结构,每个节点被称为znode。znode可看做是文件系统的中文件夹+文件。说它是文件夹,因为它下面可以放子节点;说它是文件,因为它本身存储了数据。

ZAB协议

ZAB协议是为zookeezper 设计的一种支持崩溃恢复的原子广播协议。
ZAB协议包括两种基本的模式:崩溃恢复和消息广播。
zookeeper 集群启动过程中或者Leader服务器宕机、重启、网络故障等异常情况,ZAB协议就会进入崩溃恢复模式并选举出Leader服务器。同时集群中Follower服务器开始与新的Leader服务器进行数据同步,当超过半数机器与该Leader服务器完成数据同步之后,退出恢复模式进入消息广播模式。

选举机制

Leader选举是zookeeper 中重要的技术之一,也是保证分布式数据一致性的关键。
启动时期的选举
运行期间的选举
FastLeaderElection 选举算法的核心
外部投票:特指其他服务器发来的投票。
内部投票:服务器自身当前的投票。
选举轮次:zookeeper服务器Leader选举的轮次,即logicalclock。
PK:对内部投票和外部投票进行对比来确定是否需要变更内部投票。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值