赞
踩
一个master 多个slave下,数据是怎么同步的。
其实是master 维持一个 变量,如果是同步双写的的时候,将这个变量置为对应的offset。然后不停地查看slave上报的进度有没有超过这个进度,一旦超过,就是证明slave
写入成功。返回,否则就是超时。但是最终slave还是会赶上来的。
两个slave会上报两个进度,所以,只有slave进度超过push2SlaveMaxOffset的时候,push2SlaveMaxOffset才会替换。
所以,只要有一个salve达到要求,就会notifywakeup。因为是锁一个信号量,所以就当做成功了。
所以一主多从的本质是,所有salve你们各自拉去数据并上报,如果我需要同步双写等待时,我就不停地验证
push2SlaveMaxOffset 是否超过需要的offset。
一旦超过,就返回。
前面是用countlantch 锁住一个信号量,所以一个成功就是成功了,这就是一主多从的同步机制,也是一主一从的机制。
写的那时候应该都是各自拉取的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。