5.redis-哨兵模式

news2024/11/26 1:57:21

01-哨兵模式概述

  • 如果master宕机, 我们该怎么办?

    • ①关闭所有slave
    • ②选举新的master, 建立新的主从结构
  • 存在的问题

    • ①关闭期间, 谁来提供数据服务
    • ②选举新master的标准是什么
    • ③原来的master恢复了怎么办
  • 哨兵模式

    • image-20230304103528448

    • sentinel是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制 选择新的master并将所有slave连接到新的master。

  • 作用

    • 监控:监控master和slave 不断的检查master和slave是否正常运行 master存活检测、master与slave运行情况检测
    • 通知(提醒) 当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知
    • 自动故障转移 断开master与slave连接,选取一个slave作为新的master,将其他slave连接新的master,并告 知客户端新的服务器地址

02-哨兵模式配置

  • 配置说明

    # 设置哨兵监听的主服务器信息,
    # sentinel_number表示参与投票的哨兵数量,哨兵总数量的一半加1
    sentinel monitor <master_name> <master_host> <master_port> <sentinel_number>
    
    # 设置判定服务器宕机时长,该设置控制是否进行主从切换,单位:毫秒
    sentinel down-after-milliseconds <master_name> <million_seconds>
    
    # 设置故障切换的最大超时时间,单位:毫秒
    sentinel failover-timeout <master_name> <million_seconds>
    
    # 设置主从切换后,同时进行数据同步的slave数量,数值越大,要求网络资源越高,同步时间越长
    sentinel parallel-syncs <master_name> <sync_slave_number>
    

03-哨兵模式搭建及演示

  • 需求

    • 1个主机(6379), 2个从机(26379, 26380), 3个哨兵(36379, 36380, 36381).
  • redis-6379.conf

    port 6379
    daemonize no
    # logfile "log-6379.log"
    maxclients 100000
    timeout 0
    loglevel debug
    
    
    # RDB设置
    # 1.设置rdb文件名
    dbfilename "dump-6379.rdb"
    
    # 2.设置rdb文件存储路径
    dir /usr/local/redis-6379/data
    
    # 3.设置存储rdb时是否压缩数据
    rdbcompression no
    
    # 4.设置读写文件过程是否进行RDB格式校验
    rdbchecksum no
    
    
    # 5.后台存储过程中如果出现错误现象,是否停止保存操作
    stop-writes-on-bgsave-error yes
    
    
    # 6.每隔10秒检测一次,有2个数据变化就执行bgsave指令
    save 10 2
    
    
    # AOF设置
    # 1.开启aof持久化功能
    appendonly yes
    # 2.设置aof文件名
    appendfilename 'appendonly-6379.aof'
    # 4.设置aof策略
    appendfsync everysec
    
    
    # 5.当前aof文件大小达到64mb,自动触发AOF重写
    auto-aof-rewrite-min-size 64mb
    # 5.当前aof文件大小比之前aof文件大小增加了100%,自动触发AOF重写
    auto-aof-rewrite-percentage 100
    
    
    protected-mode no
    
  • redis-26379.conf/redis-26380.conf

    port 26379
    daemonize no
    # logfile "log-26379.log"
    maxclients 100000
    timeout 0
    loglevel debug
    
    
    # RDB设置
    # 1.设置rdb文件名
    dbfilename "dump-26379.rdb"
    
    # 2.设置rdb文件存储路径
    dir /usr/local/redis-26379/data
    
    # 3.设置存储rdb时是否压缩数据
    rdbcompression no
    
    # 4.设置读写文件过程是否进行RDB格式校验
    rdbchecksum no
    
    
    # 5.后台存储过程中如果出现错误现象,是否停止保存操作
    stop-writes-on-bgsave-error yes
    
    
    # 6.每隔10秒检测一次,有2个数据变化就执行bgsave指令
    save 10 2
    
    
    # AOF设置
    # 1.开启aof持久化功能
    appendonly yes
    # 2.设置aof文件名
    appendfilename 'appendonly-26379.aof'
    # 4.设置aof策略
    appendfsync everysec
    
    
    # 5.当前aof文件大小达到64mb,自动触发AOF重写
    auto-aof-rewrite-min-size 64mb
    # 5.当前aof文件大小比之前aof文件大小增加了100%,自动触发AOF重写
    auto-aof-rewrite-percentage 100
    
    
    protected-mode no
    
    
    #主机ip和主机port
    slaveof 192.168.216.110 6379
    
  • redis-36379.conf/redis-36380.conf/redis-36381.conf

    # 设置哨兵的端口
    port 36379
    daemonize no
    dir /usr/local/redis-36379/data
    
    # 设置哨兵监控的master信息:host、port、参与投票的哨兵数量
    sentinel monitor mymaster 192.168.216.110 6379 2
    # master宕机5秒后,进行主从切换
    sentinel down-after-milliseconds mymaster 5000
    # master宕机3分钟后,如果主从切换还没成功,那么就彻底失败
    sentinel failover-timeout mymaster 180000
    # 主从切换后,数据同步的从机数量为1
    sentinel parallel-syncs mymaster 1
    # 主从切换过程中,如果有问题发生,那么就终止切换
    sentinel deny-scripts-reconfig yes
    
    
    # 设置master的访问密码
    # sentinel auth-pass mymaster root
    
  • ④启动主机

    • image-20230304111819035
  • ⑤启动从机

    • image-20230304111852246
  • ⑥启动哨兵

    • image-20230304111920666
  • ⑦查看主机信息

    • image-20230304112147348
  • ⑧查看从机信息

    • image-20230304112220016
  • ⑨查看哨兵信息

    • image-20230304112314436
  • ⑩主机宕机, 查看主从切换

    • 让redis-6379宕机

04-哨兵模式工作流程

  • ①监控: 哨兵监控获取主从服务器的状态

    • gaev45ywrg3te2faq
  • ②通知: 发现主从机有异常, 通知其他哨兵

    • yg5w34raehw4ayhr34fe
  • ③故障转移

    • hy3e4aswybg5u57erd

      • 主观下线: 一个哨兵发现有问题
      • 客观下线: 所有哨兵发现有问题
    • tgq3au7yh8j564req23w

      • 选举哨兵代表
    • tg3qa4wer4yw637tse4wy

    • 哨兵代表根据算法选举新的主机

    • 自动建立新的主机和从机结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多线程】Thread类

1. Java中如何进行多线程编程&#xff1f;线程是操作系统中的概念&#xff0c;操作系统内核实现了线程这样的机制&#xff0c;并且对用户层提供了一些 API 供用户使用(如 Linux 中的 pthread 库)。所以本身关于线程的操作&#xff0c;是依赖操作系统提供的的 API&#xff0c;而…

练习,异常,异常处理,try-catch,throws

package com.jshedu.homework_;/*** author Mr.jia* version 1.0*/ //匿名内部类 public class Homework04 {public static void main(String[] args) {Cellphone cellphone new Cellphone();//1.匿名内部类&#xff0c;同时也是一个对象/*new computer() {Overridepublic dou…

JavaClient With HDFS

序言 在使用Java创建连接HDFS的客户端时,可以设置很多参数,具体有哪些参数呢,只要是在部署HDFS服务中可以设置的参数,都是可以在连接的时候设置. 我没有去验证所有的配置是否都可以验证,只是推测cuiyaonan2000163.com 依据 创建HDFS的构造函数如下所示: 网上比较常用的是get…

gdb 跟踪调式core

自己编译的问题出现段错误: 编译:使用gdb调试core文件来查找程序中出现段错误的位置时,要注意的是可执行程序在编译的时候需要加上-g编译命令选项。 gdb调试core文件的步骤 gdb调试core文件的步骤常见的有如下几种,推荐第一种。 具体步骤一: (1)启动gdb,进入core文…

【剑指 offer】旋转数组的最小数字

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;算法训练营&#x1f447; 旋 转 数 组 的 最 小 数 字核心考点&#xff1a;数组理解&#xff0c;二分查找&#xff0c;临界条件 描述&#xff1a; 有一个长度为 n 的非降序数组&#xff0c;比如[1,2,3,4,5]…

ABAP 创建、修改、删除内部交货单(VL31N/VL32N)

一、干货 VL31N创建的BAPI&#xff1a; 1.GN_DELIVERY_CREATE 通用交货单使用的bapi&#xff0c;推荐使用 2.BAPI_DELIVERYPROCESSING_EXEC 简单&#xff0c;但是字段比较少 3.BBP_INB_DELIVERY_CREATE 听说有bug&#xff0c;我就没有使用这个了 VL32N修改/删除BAPI: BAPI_INB…

每日学术速递4.14

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Deep RL at Scale: Sorting Waste in Office Buildings with a Fleet of Mobile Manipulators 标题&#xff1a;大规模深度强化学习&#xff1a;使用移动机械手对办公楼中的垃圾进行…

VS2022编译libui库

libui是一个 C 中简单且可移植(但并非不灵活)的 GUI 库,它使用每个平台原生的GUI技术进行绘制。 官网地址:链接 本文将使用VS2022编译libui库,操作系统为Windows10。 1. 下载源代码 首先在官网下载源代码,由于此代码不依赖第三库,故只需下载源代码即可进行编译。 我下…

R730服务器环境搭建(centos7、lanproxy、docker、k8s)

文章目录前言一、centos7安装1.制作u盘启动盘2.开始装系统&#xff1a;二、环境安装&#xff08;lanproxy、docker、k8s&#xff09;1.lanproxy安装2.docker安装&#xff08;如果通过k8sOfflineSetup安装k8s可以跳过这一步&#xff0c;因为会自动安装docker&#xff09;3.安装k…

安装 KeyShot 流程

| 安装 KeyShot 流程 KeyShot 安装程序将指导您完成安装过程。 在 Windows 上&#xff0c;安装过程会要求您考虑以下事项终用户协议 为使用计算机的所有人或仅为当前用户安装 KeyShot 安装文件夹的位置 资源文件夹的位置 ——资源文件夹包含许多可以与 KeyShot 一起使用的纹…

NSSCTF doublegame题解

运行一下&#xff0c;是一个贪吃蛇游戏 先玩一玩&#xff0c;蛇的移动速度太快了&#xff0c;玩不了 查壳 64位文件&#xff0c;无壳 进入IDA分析 发现这个EXE文件是开了程序基址随机化&#xff0c;就是每次用IDA打开指令的地址不一样 我们要想使用x64dbg和IDA的时候&#…

Docker的基本操作

文章目录一、 Docker的基本操作1.1 镜像1.1.1 介绍1.1.2 镜像操作1.2 容器1.2.1 介绍1.2.2 容器操作1.3 数据卷1.3 介绍1.3.2 数据卷操作一、 Docker的基本操作 1.1 镜像 1.1.1 介绍 在 Docker 中&#xff0c;镜像&#xff08;Image&#xff09;是一种轻量级、可移植的、可扩…

营销平台一站式集成 高效实现自动化

市面上广告投放渠道渠道那么多&#xff0c;图文、动图、短视频等广告形式也越来越多&#xff0c;许多企业都会有这些疑问&#xff1a; 「腾讯广告、百度营销、巨量引擎哪个广告渠道的客户适合我们公司&#xff1f;」 「这么多广告渠道&#xff0c;哪家的点击率、转化率比较高…

1.Antlr4-简介入门

1.简介: ANTLR v4是一款功能强大的语法分析器生成器&#xff0c;可以用来读取、处理、执行和转换结构化文本或二进制文件。它被广泛应用于学术界和工业界构建各种语言、工具和框架。 2 关键字&#xff1a; import, fragment, lexer, parser, grammar, returns, locals, throw…

运维——记一次接口超时的问题与解决方法(HttpException: Read timed out)

前言&#xff1a;近期,一个线上的项目,请求出现了大量接口超时的问题,找了几个小时原因,最终发现是因为数据库服务器的磁盘满了,在此记录一下寻找的过程以及发现的问题,以备后续参考。 环境&#xff1a; 项目服务器(CentOS 64-bit 7.9) OpenJDK 1.8.0_272 数据库服务器(CentO…

打怪升级之FPGA组成原理(LE部分)

FPGA芯片逻辑单元的原理 不论你使用哪一款FPGA芯片&#xff0c;其核心可编程逻辑单元都是从一段内存种按顺序读取执行并执行的过程。具体来说&#xff0c;FOGA芯片内部包括可编程逻辑块(LAB)、可配置输入输出单元(IOE)、时钟管理模块、嵌入式RAM(BRAN&#xff0c;在Cyclone IV…

【堆的使用】【dfs构建数】二叉树遍历

二叉树遍历方法一&#xff1a;方法二&#xff1a;利用堆的性质原题链接 方法一&#xff1a; 利用dfs构建树 因为这个前序遍历给了我们空的叶节点 所以我们可以只根据叶节点 构建树 abc##de#g##f### 构建图如下 我们根据前序 abc##de#g##f### 发现 dfs左子树 和 右子树 当…

mac系统下使用clion调试redis源码

获取源代码 有两种方式&#xff0c;第一种是从官网下载 Redis 源码压缩包&#xff0c;如图 1-1 所示。 图1-1 将压缩包解压得到一个文件夹。 第二种方式&#xff0c;通过 git clone 获取源码。 从 Github 上&#xff0c;使用 git clone https://github.com/redis/redis.git…

第1章-JVM与Java体系结构

1、本系列博客&#xff0c;主要是面向Java8的虚拟机。如有特殊说明&#xff0c;会进行标注。 2、本系列博客主要参考尚硅谷的JVM视频教程&#xff0c;整理不易&#xff0c;所以图片打上了一些水印&#xff0c;还请读者见谅。后续可能会加上一些补充的东西。 3、尚硅谷的有些视频…

业务转包?行为不可控?企业外包如何保护数据安全?

出于人力、设备、开发成本等各种因素考虑&#xff0c;企业会把一部分业务外包出去&#xff0c;比如AI数据标注外包、IT外包、银行部分业务外包等。同时&#xff0c;随着企业不断向外包业务转移&#xff0c;保护数据安全和隐私已成为企业最为关注的问题之一。 来自国外的一份报告…