复制架构,Redis Sentinel分析

这篇具有很好参考价值的文章主要介绍了复制架构,Redis Sentinel分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

存储高可用,一般采用复制架构,复制架构,需要关注故障架构和状态决策2个要点

复制架构通用关注点

数据复制

复制格式

格式 优点 缺点 举例
命令 数据量小 可能存在数据不一致 Mysql 的statement同步方式,按commit顺序同步,可能存在数据不一致
Redis 的 AOF,每个操作室幂等的。
MongoDB的oplog ,oplog中每个操作室幂等的
数据 保证数据一致性 数据量大 Mysql的row模式
文件 保证生成文件时数据一致性 数据量大 Redis的RDB
复制的时候,数据可能有变化

复制方式

同步方式 特点 适用场景
同步 最强一致性 主备,主从架构
故障容忍度低
写入性能低
异步 会出现,数据不一致 数据存储集群
故障容忍度高
写入性能高
半同步 同步,异步的折中方案 数据存储集群
多数同步 数据一致性强 例如要求,分布式一致性
故障容忍度高 例如:OceanBase
写入性能低,实现复制
最强高可用

状态决策

决策方式 特点 适用场景
依靠决策者(利用zookeepr等) 决策简单 大多数业务
数据一致性中等
决策者本身高可用复杂
协商式 一般采用双通道,心跳机制 内部系统,网络设备
数据一致性弱
标准算法式 决策过程复杂,一般采用标准算法 Raft,ZAB,Paxos等 余额,库存,或金融场景
数据一致性最强
可用性最高,一般使用quorum 防止脑裂

Redis Sentinel 分析

下图,是Redis,Sentinel 的架构图图:

Sentinel 是决策者, master 是主库,follow 是从库,下面按照数据复制,状态决策2个角度进行分析

复制架构,Redis Sentinel分析

数据复制

复制格式

AOF 命令

redis是先写内存,后写AOF日志,不阻塞写操作

同步到磁盘的策略

  • Always同步写盘, 性能差, 可靠性高,数据基本不丢失。
  • Everysec每秒写盘,性能适中,宕机损失1秒数据
  • no操作系统控制写盘,性能高,宕机损失数据多

AOF 重写 针对AOF文件大,redis优化方式

  • 后台fork子进程 bgrewriteaof 来完成,不会阻塞主线程
  • 使用AOF缓冲,AOF 重写缓冲,保证在重写过程中,新写入的数据不会丢失
  • 内存页表越大,fork阻塞时间越久

复制方式

  • 异步
  • wait命令 实现半同步,
注:
   Redis的WAIT命令,可确保指定数量的Redis副本已确认

   在故障切换期间,已确认的写入可能会丢失,取决于Redis持久性的配置

状态决策,决策者:sentinel

Sentinel 作用

监控

  • 周期性的给所有主从库发送PING命令,检查它们是否仍然在线运行
  • 主观下线,一个哨兵判断主库下线
  • 客观下线,大于等于quorum(降低集群网络压力大,主库压力大造成的误判的概率),都判断主库已经主观下线了,主库才被标记客观下线,开启主从切换

选主(筛选+3轮打分)

筛选

down-after-milliseconds * 10 以内的作为候选主库

down-after-milliseconds 主从库断连的最大连接超时时间。超过10倍,认为该候选库网络不好,剔除

打分

  • 从库优先级,slave-priority配置
  • 从库复制进度,slave_repl_offset越接近master_repl_offset得分越高

master_repl_offset,master写入的点位

slave_repl_offset 从库复制的点位

  • 从库的ID号,号小的得分高

通知

让从库执行replicaof,与新主库同步

通知client 连接新的主库

Sentinel Leader 选举流程

Raft 协议的实现,大致流程如下:

  1. 哨兵给其他哨兵发送命令,表明希望由自己成为leader,并让所有其他哨兵进行投票
  2. 每个哨兵选自己,并且根据先到先得的规则,接受/拒绝其他哨兵成为leader的请求
  3. 作为Leader的2个条件 拿到半数以上的赞成票 ,拿到的票数还要大于等于quorum
注意:每个哨兵的quorum 和 down-after-milliseconds 必须一样

 文章来源地址https://www.toymoban.com/news/detail-460066.html

到了这里,关于复制架构,Redis Sentinel分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Redis】高可用之二:哨兵(sentinel)

     本文是Redis系列第5篇,前4篇欢迎移步  【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手_AQin1012的博客-CSDN博客 关于Redis的数据类型,各个文章总有些小不同,我们这里讨论的是Redis 7.0,为确保准确,我们直接看官网。 https://blog.csdn.net/aqin1012/article/details/130365083 【

    2024年02月12日
    浏览(66)
  • Redis高可用——主从复制

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能

    2024年02月12日
    浏览(39)
  • Redis高可用:主从复制详解

    目录 1.什么是主从复制? 2.优势 3.主从复制的原理 4.全量复制和增量复制    4.1 全量复制    4.2 增量复制 5.相关问题总结    5.1 当主服务器不进行持久化时复制的安全性    5.2 为什么主从全量复制使用RDB而不使用AOF?    5.3 为什么还有无磁盘复制模式?    5.4 为什么还

    2024年02月12日
    浏览(41)
  • Redis高可用(主从复制,哨兵,集群)

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从

    2024年02月07日
    浏览(35)
  • Redis高可用主从复制、哨兵、集群

    在Redis中,实现高可用的技术主要包括持久化、主从复制、哨兵和集群。 1、主从复制 主从复制时高可用Redis的基础,哨兵和cluster都是在主从复制基础上实现高可用的,主从复制主要实现了数据的多级备份,以及对与读操作的负载均衡和简单的故障恢复。 缺陷:①故障恢复无

    2024年02月12日
    浏览(51)
  • 【Redis】高可用之复制(replica)

    本文是Redis系列第4篇,前3篇欢迎移步 【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手_AQin1012的博客-CSDN博客 关于Redis的数据类型,各个文章总有些小不同,我们这里讨论的是Redis 7.0,为确保准确,我们直接看官网。 https://blog.csdn.net/aqin1012/article/details/130365083 【R

    2024年02月12日
    浏览(52)
  • redis集群和分片-Redis Cluster:分布式环境中的数据分片、主从复制和 Sentinel 哨兵

    当涉及到 Redis 中的集群、分片、主从复制和 Sentinel 哨兵时,这些是构建分布式 Redis 环境中非常重要的概念和组件。下面详细介绍这些概念以及它们在分布式环境中的作用。 Redis Cluster 是 Redis 官方提供的分布式解决方案,用于管理和维护多个 Redis 节点的分布式数据存储。R

    2024年02月13日
    浏览(61)
  • Redis 高可用和优化(主从复制、哨兵、集群)

    目录 一:Redis 高可用 二: Redis 持久化 1、持久化的功能 2、Redis 提供两种方式进行持久化 3、 RDB 持久化  (1)触发条件 (1.1)手动触发 (1.2)自动触发 (1.3)其他自动触发机制 4、执行流程 5、 启动时加载 6、AOF 持久化 (1)开启AOF 7、执行流程 (1)命令追加(append) (

    2024年02月12日
    浏览(41)
  • Redis高可用之主从复制、哨兵、cluster集群

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从

    2024年02月06日
    浏览(42)
  • redis高可用——主从复制、哨兵模式、cluster集群

    目录 1、redis群集有三种模式 2、主从复制 2.1、概述: 2.2、Redis主从复制有以下几个重要作用: 2.3、主从复制流程: 2.4、redis主从复制实验 3、哨兵模式. 3.1、概述: 3.2、 哨兵的核心功能: 3.3、哨兵模式原理: 3.6、 哨兵模式的作用; 3.7、故障转移机制 3.8、主节点的选举: 3.9、主

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包