微服务框架 SpringCloud微服务架构 分布式缓存 42 Redis 主从 42.4 数据同步原理【优化】

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

分布式缓存

文章目录

      • 微服务框架
      • 分布式缓存
      • 42 Redis 主从
        • 42.4 数据同步原理【优化】
          • 42.4.1 主从同步的问题优化
          • 42.4.2 总结

42 Redis 主从

42.4 数据同步原理【优化】

42.4.1 主从同步的问题优化

可以从以下几个方面来优化Redis主从就集群:

  • 在master中配置repl-diskless-sync yes启用无磁盘复制,避免全量同步时的磁盘IO。

  • Redis单节点上的内存占用不要太大,减少RDB导致的过多磁盘IO

    【上面的两种办法都是在提高 全量同步的性能】

  • 适当提高repl_baklog的大小,发现slave宕机时尽快实现故障恢复,尽可能避免全量同步

  • 限制一个master上的slave节点数量,如果实在是太多slave,则可以采用主-从-从链式结构,减少master压力

微服务框架 SpringCloud微服务架构 分布式缓存 42 Redis 主从 42.4 数据同步原理【优化】_第1张图片

上面就是我们现在的 主从模型【读写在主、读在从】

如果现在有超级多的salve 从节点,全部都去找master 主节点的话,master 很有可能 会忙不过来的

微服务框架 SpringCloud微服务架构 分布式缓存 42 Redis 主从 42.4 数据同步原理【优化】_第2张图片

解决办法:

微服务框架 SpringCloud微服务架构 分布式缓存 42 Redis 主从 42.4 数据同步原理【优化】_第3张图片

形成主 - 从 - 从的链式结构

42.4.2 总结

简述全量同步和增量同步区别?

  • 全量同步:master将完整内存数据生成RDB,发送RDB到slave。后续命令则记录在repl_baklog,逐个发送给slave。
  • 增量同步:slave提交自己的offset到master,master获取repl_baklog中从offset之后的命令给slave

什么时候执行全量同步?

  • slave节点第一次连接master节点时
  • slave节点断开时间太久,repl_baklog中的offset已经被覆盖时

什么时候执行增量同步?

  • slave节点断开又恢复,并且在repl_baklog中能找到offset时

你可能感兴趣的:(微服务,分布式,redis,微服务)