redis 一主两从三哨兵

news/2024/6/18 22:00:23 标签: redis, 数据库, sentinel

redis 一主两从三哨兵

    • 一、架构说明
    • 二、作用
    • 三、优点
    • 四、Redis哨兵模式的详细工作流程是怎样的?
    • 五、哨兵模式如何确保数据一致性?
    • 六、搭建安装准备
    • 七、编译和安装
    • 八、编辑 master redis.conf 配置文件
    • 九、从服务器slave1配置
    • 十、从服务器slave2配置
    • 十一、检测主从配置是否正常,进入master服务器
    • 十二、每台服务器创建哨兵节点
    • 十三、启动每个哨兵节点检查是否正常

一、架构说明

Redis 是一种开源的高性能键值数据库,通常用于缓存和消息传递。在 Redis 的架构中,主从复制和哨兵系统是实现高可用性数据一致性的重要机制。

在这种架构中,有一个主节点(Master)和两个从节点(Slave),以及三个哨兵(Sentinel)实例。各个角色的功能如下:

  • 主节点(Master):负责处理写操作,是数据的主要来源。
  • 从节点(Slave):负责从主节点复制数据,可以处理读操作,起到读写分离的作用。
  • 哨兵(Sentinel):负责监控主节点和从节点的健康状态,当检测到故障时,会自动进行故障转移。

二、作用

  1. 数据冗余:两个从节点提供了数据冗余,即使主节点发生故障,仍然有从节点可以提供数据。
  2. 读写分离:从节点负责处理读操作主节点负责处理写操作,可以提高系统的读取性能。
  3. 故障转移:当主节点发生故障时,哨兵系统可以自动地在从节点中选举出一个新的主节点,保持服务的可用性。
  4. 监控和报警:哨兵系统可以监控Redis 实例的健康状态,并在出现问题时向管理员发送报警通知。

三、优点

  1. 高可用性:通过哨兵系统,Redis 可以实现自动故障转移,确保服务的持续可用。
  2. 数据一致性:主从复制确保了数据的同步,从节点可以作为主节点的数据备份。
  3. 扩展性:可以通过增加从节点来扩展读取性能。
  4. 灵活性:可以根据实际需求调整主从复制的数量和哨兵的数量。

四、Redis哨兵模式的详细工作流程是怎样的?

Redis哨兵(Sentinel)模式是一种高可用性的解决方案,它允许你监控多个Redis实例,并在检测到故障时自动执行故障转移操作。以下是Redis哨兵模式的工作流程:


  1. 哨兵选举:
  • 当哨兵模式启动时,多个哨兵实例会相互通信,并选举出一个领导者(Leader)。
  • 领导者哨兵负责执行故障转移操作。
  1. 监控Redis实例:
  • 每个哨兵实例都会独立地监控一个或多个Redis实例(主节点和从节点)。
  • 哨兵通过定期发送PING命令到Redis实例来检查其健康状态。
  1. 故障检测:
  • 如果哨兵在指定的时间内没有收到某个Redis实例的PING响应,它会认为该实例出现了故障。
  • 一旦检测到故障,哨兵会将故障信息发送给其他哨兵实例。
  1. 主节点故障转移:
  • 当主节点故障时,领导者哨兵会开始故障转移过程。
  • 领导者哨兵会从从节点中选择一个作为新的主节点,这个选择通常基于从节点的运行状态和优先级(通过redis.conf配置文件中的slave-priority设置)。
  1. 配置更新和通知:
  • 领导者哨兵会更新新的主节点和从节点的配置信息。
  • 它还会向客户端发送命令,通知它们连接到新的主节点。
  1. 从节点故障恢复:
  • 如果原来的主节点恢复了正常,它会被重新配置为从节点,并开始从新的主节点同步数据。
  1. 手动故障恢复:
  • 即使哨兵模式可以自动执行故障转移,管理员也可以手动恢复故障的Redis实例。
  • 管理员可以通过命令行工具或Web界面来执行这些操作。
  1. 持久化状态:
  • 哨兵模式会持久化其状态到本地磁盘,包括故障转移的历史记录和当前的主节点信息。
  • 这样即使在哨兵模式重启后,也能恢复到正确的状态。
  1. 日志和监控:
  • 哨兵实例会生成日志,记录其活动的详细信息。
  • 这些日志可以用于监控和故障排查。

通过这个过程,Redis哨兵模式确保了即使在发生故障的情况下,Redis服务也能快速恢复正常运行,从而保证了系统的可用性和数据的一致性。

五、哨兵模式如何确保数据一致性?

哨兵模式(Sentinel Mode)是阿里巴巴开源的一个流量控制组件,主要用于保障微服务架构下的稳定性和高可用性。其主要功能是提供流量控制、熔断降级、系统负载保护等丰富的服务治理功能。


在确保数据一致性方面,哨兵模式主要通过以下机制实现:

  • 流量控制:通过控制进入系统的流量,避免系统过载,从而保持数据一致性不受威胁。例如,当系统检测到某一个资源访问量过大时,可以采用排队等待、限制请求频率等方式,确保系统不会因为流量激增而崩溃。
  • 熔断机制:当检测到服务间调用失败时,哨兵模式可以自动触发熔断机制,暂停服务间的调用,避免雪崩效应,并给系统一个恢复的机会。在这个过程中,可以通过缓存等方式维护数据一致性。
  • 降级策略:当系统负载过高或出现问题时,可以自动或手动将某些服务或资源降级,例如返回静态数据、直接响应错误等,从而减少系统压力,保证核心业务的一致性。
  • 系统负载保护:哨兵模式能够监控系统的实时状态,当系统负载接近或达到阈值时,可以采取措施保护系统,如拒绝部分请求、触发报警等,避免系统因为过载而发生故障。
  • 数据同步与缓存机制:在服务之间调用时,通过引入缓存机制,可以减少对下游系统的压力,同时确保数据的一致性。例如,当一个服务更新了数据后,通过缓存同步机制,将最新数据同步到其他服务,保证数据的一致性。
  • 异常报警:哨兵模式可以实现实时的异常监控和报警,一旦发现系统异常或响应超时等情况,立即通知管理员进行处理,从而确保问题得到及时解决,维护数据一致性。

通过上述机制,哨兵模式在微服务架构中起到了非常重要的作用,它通过多方面的保护措施,确保了系统在面对高并发、复杂依赖关系时的稳定性和数据一致性。


六、搭建安装准备

1、安装用户以及用户组均为 jxkh,创建用户和用户组通常使用useradd和groupadd命令。以下是如何创建一个名为jxkh的用户和用户组:
命令 :

groupadd jxkh

命令 :

useradd -m -g jxkh jxkh
<

http://www.niftyadmin.cn/n/5520552.html

相关文章

SQL题——连续问题

目录 1.连续问题的统一思路2.相关题目1285 找到连续区间的开始和结束数字2173 最多连胜的次数1454 活跃用户1225 报告系统状态的连续日期2292 连续两年有3个及以上订单的产品2752 在连续天数上进行了最多交易次数的顾客2474 购买量严格增加的客户3140 连续空余座位II 1.连续问题…

JAVAWEB--Mybatis02

Maven项目导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/…

IDEA:配置Golang的开发环境及异常

1、下载&安装 进入GO的官网下载对应的GO 我们可以下载安装版&#xff0c;不过本人习惯下载解压版&#xff0c;这个因个人而异 2、配置环境变量 GOBIN : %GOROOT%\bin GOPATH : D:\MyGo 工作区间 GOROOT : D:\Program Files\Go GOJDK地址PATH: %GOBIN% ; %GOROOT%\bin ; …

phpStudy里面的MySQL启动不了

C:\Users\Administrator>netstat -an | find "3306" TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING TCP 0.0.0.0:33060 0.0.0.0:0 LISTENING TCP [::]:3306 [::]:0 LISTENING TCP [::]:33060 [::]:0 LISTENING 从你提供的输出结果可以看到&#xff0c;端口3306和33060已经…

PostgreSQL 快速入门与实战

1、概述 前面2篇博客给大家详细的介绍了PostgreSQL的安装和配置&#xff0c;本篇文章就带着大家一起学习一下PostgreSQL的用法&#xff0c;主要内容包括 基本的数据库操作、用户管理、数据备份、SCHEMA(模式)以及和MySQL的区别。 2、数据库基本操作 PostgreSQL是严格遵守SQL规…

[数据集][目标检测]足球场足球运动员身份识别足球裁判员数据集VOC+YOLO格式312张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;312 标注数量(xml文件个数)&#xff1a;312 标注数量(txt文件个数)&#xff1a;312 标注类别…

有状态服务和无状态服务

有状态服务和无状态服务在不同的业务场景下有不同的应用&#xff0c;以下是一些常见的例子&#xff1a; 有状态服务的场景&#xff1a; 用户会话管理&#xff1a; 用户登录后&#xff0c;会话信息&#xff08;如用户ID、权限、购物车内容等&#xff09;需要在服务端保持状态。…

5.数据仓库与数据挖掘期末复习

ETL的含义Extract 、 Transformation、Load。ODS的全称Operational Data Store。 DW全称 Data WarehourseDM全称是Data Mart数据仓库数据抽取时所用到技术是增量、全量、定时、调度STAGE层作用是提供业务系统数据文件的临时存储ODS层作用ods提供业务系统细节数据长期沉淀MID层…