zoukankan      html  css  js  c++  java
  • 007.redis replication 以及 master 持久化对主从架构的安全意义

    redis 高并发的思路:redis replication -> 主从架构 -> 读写分离 -> 水平扩容支撑高并发

    本章节主要讲解 redis replication 的最最基本的原理,作为铺垫

    图解 redis replication 基本原理

    在前一章节基本上已经讲过了,如上图差不多。写操作成功之后,会异步的把数据复制到 slave 上

    redis replication 的核心机制

    • redis 采用异步方式复制数据到 slave 节点

      不过 redis 2.8 开始,slave node 会周期性地确认自己每次复制的数据量

    • 一个 master node 是可以配置多个 slave node 的

    • slave node 也可以连接其他的 slave node

    • slave node 做复制的时候,是不会 block master node 的正常工作的

    • slave node 在做复制的时候,也不会 block 对自己的查询操作

      它会用旧的数据集来提供服务; 但是复制完成的时候,需要删除旧数据集,加载新数据集,这个时候就会暂停对外服务了

    • slave node 主要用来进行横向扩容,做读写分离,扩容的 slave node 可以提高读的吞吐量

    实现高可用性 slave 有很大的关系,后面会讲解

    master 持久化对于主从架构的安全保障的意义

    如果采用了主从架构,那么建议必须开启 master node 的持久化!

    很简单的道理,master 提供写,它自己的数据是最完整的,所以需要它自己来做持久化。

    如果不使用 master 做持久化的冷备,而采用 slave 来做冷备的话,当 master 死机再重启,因为自己本地没有数据,会将空的数据同步到所有的 slave 上去。

    其次 master 的各种备份方案,要不要做,万一说本地的所有文件丢失了; 从备份中挑选一份 rdb 去恢复 master; 这样才能确保 master 启动的时候,是有数据的

    后面会讲解哨兵(sentinal)高可用机制,即使采用了该高可用机制,slave node 可以自动接管 master node,但是也可能 sentinal 还没有检测到 master failure,master node 就自动重启了,还是可能导致上面的所有 slave node 数据清空故障

    总结:

    1. master 持久化开启
    2. 冷备方案一定要做(之前讲解的定时备份的方案)

    参考

    -中华石杉:亿级流量电商详情页系统实战(第二版):缓存架构+高可用服务架构+微服务架构
    -Mrcode笔记本

  • 相关阅读:
    weblogic复现利用系列-2019
    weblogic复现利用系列-2020
    Python3编码解码与数据类型转换
    weblogic复现利用系列-2017
    weblogic从ssrf到redis获取shell
    fastjson反序列化复现
    shiro721复现
    Shiro550复现和挖掘思路
    RMI反序列化
    手写一个admin 组件------STARK
  • 原文地址:https://www.cnblogs.com/codecheng99/p/12383480.html
Copyright © 2011-2022 走看看