主从复制

本文介绍了主从复制在Redis、MySQL和RocketMQ中的实现和作用,强调其在消除单点故障和提高可用性方面的价值。在Redis中,涉及复制偏移量和复制积压缓冲区;MySQL利用log dump线程、I/O线程和SQL线程进行复制;RocketMQ的主从同步包括同步写和异步写,并依赖consumeQueue和commitlog。通过工具如keepalived或mycat,可以实现主从自动切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主从复制能够消除单点故障,提高可用性(HA)

Redis

1、复制偏移量
在这里插入图片描述
在这里插入图片描述
2、复制积压缓冲区
在这里插入图片描述
在这里插入图片描述
集群部署,若主节点挂了,会进行选举,从节点顶上来。

MySQL

主库有一个log dump线程,将binlog传给从库。从库有两个线程,一个I/O线程,一个SQL线程,I/O线程读取主库传过来的binlog内容并写入到relay log(中继日志),SQL线程从relay log里面读取内容,写入从库的数据库。
在这里插入图片描述
可以通过keepalived或mycat做到主从自动切换

RocketMQ

跟redis一样,主从复制也分为同步和命令传播。
主从同步:
在这里插入图片描述
上图参考:https://blog.youkuaiyun.com/prestigeding/article/details/79600792

命令传播:
master写成功后,会去写slave。写slave有同步写和异步写两种方式。

consumeQueue:索引,存储了指向物理存储的地址
commitlog:消息物理文件
在这里插入图片描述
在创建Topic的时候,把Topic 的多个MessageQueue创建在多个Broker组上(相同Broker 名称,不同brokerId 的机器组成一个Broker 组),这样当一个Broker 组的Master 不可用后,其他组的Master 仍然可用,Producer 仍然可以发送消息。RocketMQ 目前还不支持把Slave 自动转成Master ,如果机器资源不足,需要把Slave 转成Master ,则要手动停止S lave 角色的Broker ,更改配置文件,用新的配置文件启动Broker

三者情况类似,做个总结。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值