客随主便-redis 主从同步是怎样的过程?

客随主便-redis 主从同步是怎样的过程?

? 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家

? 擅长领域:全栈工程师、爬虫、ACM算法

? 公众号:知识浅谈

客随主便-redis 主从同步是怎样的过程总结?这次都给他拿下?

?主从同步过程

首先主从同步是靠binlog日志来完成主从同步的,根据binlog中的内存到从服务器上数据更新,使其和主库保证同步。

客随主便-redis 主从同步是怎样的过程?

  1. 数据更新,sql语句或者变更影响的行记录到binlog中。
  2. 创建binlogdump线程把数据发送到从数据库。
  3. 从数据库中创建一个io线程用来接受主库发来的binlog日志,并把日志存储到中继日志relaylog中。
  4. 从库创建一个sql线程,用来把relay log中的日志读取到sql进行执行同步。

?主从同步延迟

?主从同步延迟原因

关于主从同步还存在 一定的延迟问题,我们有以下解决方案。发生主从同步延迟的问题是因为从库持久化的时候随即重放和锁等待。随即重放:因为binlog是顺序写的速度比较快,而在从库中把relaylog在数据库中执行,数据存储的位置不是连续的,所以就是随即重放比顺序写消耗时间。锁等待:因为从库在读的时候,写等待,如果读的数据较多,写就需要等待较长时间,也影响了主从同步。

?主从同步延迟解决方案

  1. 强制读主库,当然这样从库就相当于一个备份了。
  2. 降低并发,也就是相当于给数据库减少压力了。
  3. 延迟读,评估一定的时间,保证主从已经同步。
  4. 并行复制,在中继日志到数据库执行的过程采用多个worker线程执行,加快重放的速度

?总结

发表评论

相关文章