rocketmq 一主多从 的同步机制

一个master 多个slave下,数据是怎么同步的。

其实是master 维持一个 变量,如果是同步双写的的时候,将这个变量置为对应的offset。然后不停地查看slave上报的进度有没有超过这个进度,一旦超过,就是证明slave

写入成功。返回,否则就是超时。但是最终slave还是会赶上来的。


两个slave会上报两个进度,所以,只有slave进度超过push2SlaveMaxOffset的时候,push2SlaveMaxOffset才会替换。

所以,只要有一个salve达到要求,就会notifywakeup。因为是锁一个信号量,所以就当做成功了。


所以一主多从的本质是,所有salve你们各自拉去数据并上报,如果我需要同步双写等待时,我就不停地验证 

push2SlaveMaxOffset 是否超过需要的offset。
一旦超过,就返回。
前面是用countlantch 锁住一个信号量,所以一个成功就是成功了,这就是一主多从的同步机制,也是一主一从的机制。
 
写的那时候应该都是各自拉取的

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值