IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 对初学者十分友好的redis集群详解 -> 正文阅读

[系统运维]对初学者十分友好的redis集群详解

主从复制

主从链(拓扑结构、主负责写,从负责读)

画了两张图来帮助理解

?

?

复制模式

  • 全量复制:Master 全部同步到 Slave

  • 部分复制:(只复制增量 主服务器有8个数据,从服务器有3个数据,只把那5个复制过来)Slave 数据丢失进行备份

问题点

  • 同步故障

    • 复制数据延迟(不一致)

    • 读取过期数据(Slave 不能删除数据)

    • 从节点故障

    • 主节点故障

  • 配置不一致

    • maxmemory 不一致:丢失数据

    • 优化参数不一致:内存不一致.

  • 避免全量复制

    • 选择小主节点(分片)、低峰期间操作.

    • 如果节点运行 id 不匹配(如主节点重启、运行 id 发送变化),此时要执行全量复制,应该配合哨兵和集群解决.

    • 主从复制挤压缓冲区不足产生的问题(网络中断,部分复制无法满足),可增大复制缓冲区( rel_backlog_size 参数).

  • 复制风暴

哨兵机制

拓扑图(来自网络)

一主二从三哨兵 每一个哨兵都监控着除了自己以外的所有节点

节点下线

  • 主观下线

    • 即 Sentinel 节点对 Redis 节点失败的偏见,超出超时时间认为 Master 已经宕机。

    • Sentinel 集群的每一个 Sentinel 节点会定时对 Redis 集群的所有节点发心跳包检测节点是否正常。如果一个节点在 down-after-milliseconds 时间内没有回复 Sentinel 节点的心跳包,则该 Redis 节点被该 Sentinel 节点主观下线。

举个例子:一个烧饼监控着主节点,但是他们之间的网络可能不太好,所以发生了超时,所以这个哨兵就认为这个主节点下线了;第二点很容易理解了,可以理解为redis的ping-pong,你没回应,我就认为你下线了。

  • 客观下线

    • 所有 Sentinel 节点对 Redis 节点失败要达成共识,即超过 quorum(这是个参数,可以理解为超过总数的一半?) 个统一。

    • 当节点被一个 Sentinel 节点记为主观下线时,并不意味着该节点肯定故障了,还需要 Sentinel 集群的其他 Sentinel 节点共同判断为主观下线才行。

    • 该 Sentinel 节点会询问其它 Sentinel 节点,如果 Sentinel 集群中超过 quorum 数量的 Sentinel 节点认为该 Redis 节点主观下线,则该 Redis 客观下线。

主观下线是一个哨兵节点认为你下线了,客观下线是所有节点都认为你下线了!!!之所以这样做是为了放在网络波动导致节点下线问题

Leader选举(这个leader哨兵的作用只是用来选出新的Redis Master,选出来以后就恢复平齐地位,原来的master节点恢复正常以后成为新的master的slava)

  • 选举出一个 Sentinel 作为 Leader:集群中至少有三个 Sentinel 节点,但只有其中一个节点可完成故障转移.通过以下命令可以进行失败判定或领导者选举。

  • 选举流程

    1. 每个主观下线的 Sentinel 节点向其他 Sentinel 节点发送命令,要求设置它为领导者.

    2. 收到命令的 Sentinel 节点如果没有同意通过其他 Sentinel 节点发送的命令,则同意该请求,否则拒绝。(只同意第一个)

    3. 如果该 Sentinel 节点发现自己的票数已经超过 Sentinel 集合半数且超过 quorum(一个参数),则它成为领导者。

    4. 如果此过程有多个 Sentinel 节点成为领导者,则等待一段时间再重新进行选举。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:51:11  更:2022-04-04 12:55:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:50:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码