07. 哨兵模式

文章目录

  • 概述
    • 哨兵模式
    • 多哨兵模式
    • 测试
    • 哨兵模式优缺点
    • 哨兵模式的配置

概述

主从切换的技术是,当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这需要人工干预,还会造成一段时间内服务不可用。所以我们考虑使用哨兵模式。

哨兵模式

哨兵模式能够自动监控主机是否故障,如果故障了根据投票数自动将从库转为主库。

哨兵模式是一种特殊的模式,Redis 提供了哨兵模式的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是,哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例

哨兵的两个作用:

  • 通过发送命令,让 Redis 服务器返回器运行状态,包括主服务器和从服务器;
  • 当哨兵检测到 master 宕机后,会自动将 slave 切换为 master,然后通过发布订阅模式通知其他从服务器,修改配置文件,让他们切换主机。

多哨兵模式

单个哨兵稳定性不高,因此使用多哨兵模式。各个哨兵之间也会进行监控。

假设主服务器宕机,哨兵 1 先检测到这个结果,但系统并不会立即进行 failover 过程,仅仅是哨兵 1 主观认为主服务器不可用,这个过程称为主观下线,当其它哨兵也检测到主服务器不可用,并达到一定的数量时,那么哨兵之间就会进行一次投票,投票由一个哨兵发起(可以是哨兵 1,可以是哨兵 2),进行 failover(故障转移)操作。切换成功后,就会通过发布订阅模式让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线

测试

配置哨兵配置文件,sentinel.conf

# sentinel monitor 被监控的服务器名称 host port 1
# 数字 1 代表,主机挂了之后,slave 投票看让谁接替成为主机,票数最多的成为主机。
sentinel monitor myredis 127.0.0.1 6379 1

启动

redis-sentinel kconfig/sentinel.conf

如果主机宕机后,又重新连接后,只能作为从机了。

哨兵模式优缺点

优点:

  • 哨兵集群,基于主从复制模式,所有主从复制的优点它全有;
  • 主从可以切换,故障可以转移,系统可用性高;
  • 哨兵模式就是主从模式的升级。

缺点:

  • Redis 不好在线扩容的,集群容量一旦达到上限,在线扩容就十分麻烦;
  • 实现哨兵模式的配置其实是很麻烦的,里面有很多选择。

哨兵模式的配置

# 哨兵实例运行的端口,默认26379
port 26379# 哨兵的工作目录
dir /tmp# 哨兵sentinel监控的Redis主节点的 ip port
# master-name 主节点的名字,可以自己命名
# quorum 配置了多少个,哨兵统一认为master主节点失联,那么这时客观上认为主节点失联了
# sentinel monitor <master-name> <ip> <port> <quorum>
sentinel monitor myredis 127.0.0.1 6379 1# 设置哨兵连接主从的密码,注意必须为主从一样的密码
sentinel auth-pass mymaster password# 默认的延时操作
# 指定多少毫秒后,主节点没有应答哨兵,此时,哨兵主观认为主节点下线 默认30s
sentinel down-after-millseconds mymaster 30000

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

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

相关文章

安卓实现5个底部导航栏切换fragment

步骤&#xff0c;写 5 个 fragment 自定义的类5个布局文件&#xff1a; package com.xmkjsoft.xhgh.fragment;import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;import androidx.annotation.NonNul…

win11安装docker运行Open-Webui 界面化展示 ollama大模型

1.OpenWeb UI运行需要docker 环境下载docker Get Started | Docker 2.需要命令提示符docker -v 查询是否安装成功&#xff1b; 查询docker详情docker version 3.github拉取open-webUi镜像Package open-webui GitHub 复制命令运行在命令提示符&#xff1b; 等待下载完成 4.到…

Web安全:企业如何抵御常见的网络攻击?

近年来随着人类社会向数字世界的加速发展&#xff0c;勒索软件攻击事件在全球范围内呈现快速上升的态势&#xff0c;几乎所有国家的政府、金融、教育、医疗、制造、交通、能源等行业均受到影响&#xff0c;可以说有互联网的地方就可能发生勒索软件攻击事件。 Web安全是一个大课…

蓝桥杯2023(十四届)省赛——统计日期(八重神子)

统计日期 2.日期统计 - 蓝桥云课 (lanqiao.cn) 其实一开始我想直接暴力的&#xff0c;然后写着写着突然觉得可以优化一下&#xff1a; 优化方法&#xff1a;先找所有2023的位置&#xff0c;记录初始和最后的位置 找出所有合法日期的位置&#xff0c;使用前缀和&#xff0c;计…

C语言基础-静态变量(static)

在C语言中&#xff0c;static关键字有多种用途&#xff0c;主要与变量的存储期&#xff08;lifetime&#xff09;和可见性&#xff08;visibility&#xff09;有关。以下是static在C语言中的主要用途&#xff1a; 局部静态变量&#xff1a; 在函数内部定义的局部静态变量&#…

2024-05-24 思考-关于软件架构设计

摘要: 2024-05-24 思考-关于软件架构设计 软件架构设计: 虽然在商业的战略中&#xff0c;软件代码只是起到最后的一个环节&#xff0c;但是对于业务本身来说&#xff0c;还是应该站在商业的视角上&#xff0c;去看待技术的实现此前读过的比较有价值的关于软件架构设计的书&…

【全开源】简单商城系统(PC/UniAPP)

轻松构建您的在线商店 在当今数字化时代&#xff0c;拥有一个在线商店对于许多商家来说已成为必不可少的营销手段。为了满足这一需求&#xff0c;我们推出了“简单商城系统源码”&#xff0c;让您轻松构建并管理您的在线商店。 一、简单易用&#xff0c;快速上手 “简单商城…

C++第三方库【JSON】— jsoncpp

目录 认识JSON jsoncpp库 安装&使用 认识jsoncpp Json::Value jsoncpp序列化 jsoncpp反序列化 认识JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据&#xff0c;常用于在客户端和服…

《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖

1、概述 源码放在文章末尾 该项目基于QPropertyAnimation实现了控件平移动画和控件之间的相互覆盖效果&#xff0c;项目demo演示如下所示&#xff1a; 项目解析&#xff1a; new QPropertyAnimation(ui.SingleOcclusion, “pos”); //创建动画对象&#xff0c;第一个参数传…

用python做的一个井子棋游戏——浔川python社

简介&#xff1a; 在井子棋的基础上&#xff0c;我们改进了登录界面。允许大量玩家注册! # -*- coding: utf-8 -*- import tkinter as tk import tkinter.messagebox import pickle import random# 窗口 window tk.Tk() window.title(欢迎进入python) window.geometry(450x2…

《Python编程从入门到实践》day37

# 昨日知识点回顾 制定规范、创建虚拟环境并激活&#xff0c;正在虚拟环境创建项目、数据库和应用程序 # 今日知识点学习 18.2.4 定义模型Entry # models.py from django.db import models# Create your models here. class Topic(models.Model):"""用户学习的…

TypeScript中的类型推断(Type Inference):自动化的类型安全

TypeScript中的类型推断&#xff08;Type Inference&#xff09;&#xff1a;自动化的类型安全 引言 类型推断是TypeScript的一个关键特性&#xff0c;它允许编译器根据值的初始化或上下文自动推导出变量的类型。这减少了需要显式指定的类型注解&#xff0c;同时保持了代码的…

springboot中不同请求方式的注解有哪些,有什么含义

在Spring Boot中&#xff0c;处理Web请求通常使用Spring MVC框架&#xff0c;它提供了一系列的注解来支持不同的HTTP请求方式。以下是一些常用的注解及其含义&#xff1a; RequestMapping: 这是一个通用的映射注解&#xff0c;可以用于映射类或方法到HTTP请求。它支持多种请求方…

Python进阶之深入类和对象

鸭子类型 鸭子类型实际上类似于多态的概念。指的是我们在使用一个父类的时候&#xff0c;不关心子类具体是什么&#xff0c;只要之类实现了父类必须要要实现的方法&#xff0c;我们就把它当成父类使用。 在下面的案例中&#xff0c;鸭子&#xff0c;猫&#xff0c;狗都是动物…

webgl three 几何体

辅助几何体 // AxesHelper&#xff1a;辅助观察的坐标系const axesHelper new THREE.AxesHelper(400);scene.add(axesHelper);//辅助观察网格const gridHelper new THREE.GridHelper(300, 25, 0x004444, 0x004444);scene.add(gridHelper); 基础几何体 //长方体const geomet…

时光初创知识付费模板 3.6.4 安装包 附教程

源码地址&#xff1a; https://wwv.lanzouh.com/b080wj8eh

码蹄集部分题目(2024OJ赛15期;前缀和+栈+堆+队列)

1&#x1f40b;&#x1f40b;&#x1f40b;门票&#xff08;钻石&#xff1b;前缀和&#xff09; 时间限制&#xff1a;1秒 占用内存&#xff1a;128M &#x1f41f;题目描述 &#x1f41f;输入输出格式 &#x1f41f;样例 &#x1f41a;样例 &#x1f41a;备注 &#x1f4…

西北农林科技大学2024学年C++面向对象程序设计OJ——T15 英文文本单词统计(STL)

一.题目描述 Description 读入一篇英文文章&#xff0c;基于STL中的容器和算法&#xff08;建议包含<map>、<algorithm>、<string>和<sstream>&#xff09;&#xff0c;删除所有标点符号&#xff0c;主要包括英文逗号“,”、句号“.”、分号“;”、感…

docker和containerd的区别

docker和containerd的区别 1、容器运行时 1.1 容器运行时概念 容器运行时&#xff08;Container Runtime&#xff09;是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一&#xff0c;用于在容器内部运行应用程序&#xff0c;并提供隔离…

Linux 三十六章

​​​​​​​ &#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要…