mysql 的主从

1、主从复制主要通过三个线程完成

1、master 节点 的binlog dump 线程,复制binlog到slave节点
2、slave节点的IO线程,读取master 节点发送的binlog ,写入到中继日志(Relay Log)中;
3、SQL线程,读取中继日志中的内容

3

2、主从读一致性
由于分布式网络等原因,主从数据异步同步存在时间差,要保持正主从读的一致性,怎么做?

两种方式
1、单读slave 。通过user的 ID 由路由到一个slave ,保证user 多次请求在一个slave ,这样就能保证数据的一致性,当slave 宕了以后,可以更换一个slave就ok 了。
2、
业务场景区分,读个人数据读取主库,读取他人的数据读取从库。
监控主从数据同步的速度,N min之前读取主库,读取从库
跨地域,时间区间不一致,在同一主库即可;

3、多主复制问题以及冲突处理
问题主要源于多个主库都可以写入,而多个主库的数据源是一样的,并且跨集群存在不可预估的网络延迟,比如自增主键的冲突、写入数据的冲突、数据库唯一约束的冲突等。

1、同步写
等待所有主库 都同步以后,返回结果;基本还不如一主多从
2、避免冲突
同一个维度的数据只在一个中心写入,但是其他中心无法分担 写的流量削峰;
3、冲突检测-处理
时间戳处理
只检测处理,检测出冲突交给应用处理;

  • 读检测
    写数据的冲突已经存储了。
    数据被读取的时候,不同的数据的版本会一起返回给应用,然后应用可以自己选择或者反馈给用户来选择想提交的数据。
  • 写检测
    通过检测复制日志中的数据冲突,调一个线程来解决

4、拓扑模型

1、环形
2、星型
3、ALL-to-ALL

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值