首页 > 数据库 >中间件:Redis-x64-5.0.14.1高可用集群-哨兵(Sentinel)模式(Win10)

中间件:Redis-x64-5.0.14.1高可用集群-哨兵(Sentinel)模式(Win10)

时间:2023-11-28 17:44:37浏览次数:42  
标签:5.0 mymaster 14.1 中间件 哨兵 sentinel master Sentinel 服务器

 

原文:https://blog.csdn.net/chenyang_wei/article/details/127846656

在 Redis 主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性较低,不适用于线上生产环境。
Redis 官方推荐一种高可用方案,也就是 Redis Sentinel 哨兵模式,它弥补了主从模式的不足。Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Sentinel 会自动进行 Failover(即故障转移),并将其监控的从机提升主服务器(master),从而保证了系统的高可用性。

哨兵模式是一种特殊的模式,Redis 为其提供了专属的哨兵命令,它是一个独立的进程,能够独立运行。

哨兵主要有两个重要作用:

1、哨兵节点会以每秒一次的频率对每个 Redis 节点发送PING命令,并通过 Redis 节点的回复来判断其运行状态;

2、当哨兵监测到主服务器发生故障时,会自动在从节点中选择一台将机器,并其提升为主服务器,然后使用 PubSub 发布订阅模式,通知其他的从节点,修改配置文件,跟随新的主服务器。

在实际生产情况中,Redis Sentinel 是集群的高可用的保障,为避免 Sentinel 发生意外,它一般是由 3~5 个节点组成,这样就算挂了个别节点,该集群仍然可以正常运转。

本例环境配置:

master : 127.0.0.1 6380

slave1:127.0.0.1 6381

slave2:127.0.0.1 6382

sentinel1:127.0.0.1 16380

sentinel2:127.0.0.1 16381

sentinel3:127.0.0.1 16382

一、Redis集群配置
可参考:中间件:Redis-x64-5.0.14.1集群主从复制(Win10)

二、哨兵Sentinel配置


1、给master 6380中增加哨兵配置文件 sentinel.conf

哨兵全部配置主服务器信息,因为master有slave信息

#当前Sentinel服务运行端口
port 16380
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1 6380 2
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
2、同样给从服务 6381、6382下增加 sentinel.conf

#当前Sentinel服务运行端口
port 16381
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1 6380 2
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
#当前Sentinel服务运行端口
port 16382
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1 6380 2
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
3、启动集群

先启动master,再启动slave 6381、6382;启动可参考:中间件:Redis-x64-5.0.14.1集群主从复制(Win10)

 

 

 

4、启动哨兵

三个哨兵启用后,可以看见生成三个不同的 Sentinel ID

 

 

 

5、集群状态

 

 

 

三、测试
1、测试主机master 6380宕机

 

 

通过选票,6382成为master,6381中的master变成 6382。

 

2、停机的原master 6380重启

6380仍是从服务器,6382是master;6380不会再变回master。

 

 

 

3、slave 6381宕机

6382中可以看到只剩6380一个从机

 

重启6381 slave,6381回归关闭前状态

 

四、其他
1、从机配置命令:slave [master ip] [master port]

2、哨兵监听的主服务器:sentinel monitor [master名称(可以自定义)] [ip] [port] [通过票数]

master宕机后,从机投票通过设定的 通过票数 后认定master宕机,设定slave为master。

3、sentinel <选项的名字> <主服务器的名字> <选项的值>

down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数;

如果服务器在给定的毫秒数之内, 没有返回 Sentinel 发送的 PING 命令的回复, 或者返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线(subjectively down,简称 SDOWN )。
不过只有一个 Sentinel 将服务器标记为主观下线并不一定会引起服务器的自动故障迁移: 只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线(objectively down, 简称 ODOWN ), 这时自动故障迁移才会执行。将服务器标记为客观下线所需的 Sentinel 数量由对主服务器的配置决定。

parallel-syncs 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。

4、Windows cmd启动redis:redis-server.exe redis.windows.conf;

5、Windows cmd启动哨兵:redis-server.exe sentinel.conf --sentinel;

6、Windows cmd redis cli:redis-cli.exe -h IP -p 端口;

7、Windows cmd redis cli查看redis状态信息:info replication;
————————————————
版权声明:本文为CSDN博主「我也不清楚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenyang_wei/article/details/127846656

标签:5.0,mymaster,14.1,中间件,哨兵,sentinel,master,Sentinel,服务器
From: https://www.cnblogs.com/bruce1992/p/17862546.html

相关文章

  • Modbus平台:协议中间件
    该程序可放置外网中,适用于DTU长连接(心跳包必须包含DTU,可以是tcp/udp),也可以在内网中,短连接访问设备server支持协议:ModbusTCP|RTU|ASCII连接方式:TcpAtive:TCP主动|TcpPassive:TCP被动|UdpAtive:Udp主动|UdpPassive:Udp被动支持功能:bool|short|int|float|lon......
  • 【5.0】常用模块之json、pickle模块
    【一】序列化和反序列化【1】什么是序列化将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。【2】为什么要有序列化比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里然后另一个python程序再......
  • postgresql从入门到精通 - 第35讲:中间件PgBouncer部署|PostgreSQL教程
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第35讲:中间件PgBouncer部署11月25日(周六)19:30-20:30,往期......
  • 30. 干货系列从零用Rust编写正反向代理,HTTP的组装之旅(中间件)
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • mysql5.0升级8.0完成后,服务器重启引发"#1449 - The user specified as a definer ('m
    遇到的问题:问题一:ERROR1449(HY000):Theuserspecifiedasadefiner('mysql.infoschema'@'localhost')doesnotexist异常原因:未知解决办法:验证指定的用户('mysql.infoschema'@'localhost')是否存在于mysql数据库中SELECTUserFROMmysql.userWH......
  • 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicK
    报错内容 解决办法:在Web.config的<configuration></configuration>中添加如下代码即可。<configuration><runtime><assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assembly......
  • Golang Gin 中间件
    一.中间件1packagemain23import(4"fmt"5"gin01/middlewares"6"text/template"7"time"89"github.com/gin-gonic/gin"10)1112/***13中间件的注意事项:14......
  • 苹果史上最大号平板要来了!iPad Pro 14.1外观出炉:首次用上灵动岛
    从去年6月份开始,就不断有消息称苹果在规划iPadPro14.1英寸超大屏版本。根据爆料人MajinBuOfficial的最新新消息,苹果将会在明年推出这款史上最大号iPad。同时还公布了新机渲染图,整体设计语言与iPhone15Pro高度一致,正面是灵动岛屏幕,背部则是三摄系统,图上展示的配色也与手机相......
  • core中间件全局日志
    参考学习项目zradmin在Configure中配置请求参数缓存//使可以多次多去body内容app.Use((context,next)=>{context.Request.EnableBuffering();returnnext();//请求通道走向下一步});在Configure......
  • ThinkPHPP5.0 Queue
    composer安装think-queue#tp5.0composerrequiretopthink/think-queue=1.1.6 --no-plugins#tp5.1.xcomposerrequiretopthink/think-queue2.0.4 --no-plugins#tp6composerrequiretopthink/think-queue --no-plugins验证安装结果phpthinkqueue:work......