各种集群(mysql,redis,mq)节点之间的数据同步

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.mysql主从同步原理

主从配置教程参考
relay-log中继日志
1.在主库上开启记录二进制日志。在每次准备提交事务完成数据更新前主库将数据更新的事件记录到二进制日志中。MySQL会按事务提交的顺序而非每条语句的执行顺序来记录二进制日志。在记录二进制日志后主库会告诉存储引擎可以提交事务了。
2.备库将主库的二进制日志复制到其本地的中继日志中。首先备库会启动一个工作线程称为I/O线程I/O线程跟主库建立一个普通的客户端连接然后在主库上启动一个特殊的二进制转储binlog dump线程该线程没有对应的SQL命令这个二进制转储线程会读取主库上二进制日志中的事件。它不会对事件进行轮询。如果该线程追赶上了主库它将进入睡眠状态直到主库发送信号量通知其有新的事件产生时才会被唤醒备库I/0线程会将接收到的事件记录到中继日志中。
3.备库的SQL线程执行最后一步该线程从中继日志中读取事件并在备库执行从而实现备库数据的更新。当SQL线程追赶上I/O线程时中继日志通常已经在系统缓存中所以中继日志的开销很低。SQL线程执行的事件也可以通过配置选项来决定是否写入其自己的二进制日志中它对于我们稍后提到的场景非常有用。

如图
在这里插入图片描述

2.redis主从节点和槽节点之间的通信

主从节点之间的数据就是备份的但是槽节点不是redis集群对外工作是多个主节点一起对外的一旦有一个挂了就整个服务集群挂了。
在这里插入图片描述

主节点1给主节点2和主节点3发信息3主节点没回信息判定下线这时候主节点也会发没回判定下线超过一半主节点的下线就认为故障主节点3的从节点就会顶上成为主节点
在这里插入图片描述

Redis 集群是由各个节点各自为一个集群的(也就是主从节点通过执行 CLUSTER MEET 目标机IP 目标机端口 命令使得两台机器建立连接从而构成集群。这是通过套接字直接通信的。整个集群对应的槽是由 16384 大小的二进制数组组成集群中每个主节点分配一部分槽。set key1 value1 命令时用CRC16(key1) & 16383 =与运算结果结果就是确认在那个槽位就确认在哪个主节点。

主从节点之间通信是通过从节点执行slaveof master_ip port建立关系的数据备份流程图在这里插入图片描述

主服务器和从服务器都维护着一个执行命令的偏移量同步过程断线了重连之后会从偏移那段开始。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysqlredis

“各种集群(mysql,redis,mq)节点之间的数据同步” 的相关文章