网站制作一般收费,广州市城乡建设信息中心网站,如何建设网站,代理网页在线#x1f9d1;#x1f4bb;作者名称#xff1a;DaenCode #x1f3a4;作者简介#xff1a;啥技术都喜欢捣鼓捣鼓#xff0c;喜欢分享技术、经验、生活。 #x1f60e;人生感悟#xff1a;尝尽人生百味#xff0c;方知世间冷暖。 #x1f4d6;所属专栏#xff1a;Re… 作者名称DaenCode 作者简介啥技术都喜欢捣鼓捣鼓喜欢分享技术、经验、生活。 人生感悟尝尽人生百味方知世间冷暖。 所属专栏Redis从头学 文章目录 前言概述搭建过程前情提要配置文件创建启动哨兵 场景测试写在最后 前言
在上一篇文章中介绍了主从分离读写分离以及其搭建的多种方式。如果其中的主节点宕机需要我们手工去重新设置主节点那么有没有一种方式可以自动设置主节点呢那就是Redis中的哨兵机制本文就介绍哨兵机制的原理以及其搭建方式。 概述 哨兵模式通过发送命令给多个节点来监控Redis的master以及slave的运行状态并在master服务宕机后自动将slave节点转为master服务。 哨兵模式的三大工作任务 监控监控master以及其slave节点的运行状态。提醒将检测的节点信息通过API向客户端发送相关信息。自动故障转移当master服务不能正常运行时内部将从slave节点中选举出最新的master服务并通知其他的slave节点更新主节点配置信息。 多哨兵模式下的下线名称 主观下线监控的Redis节点没有在规定的时间down-after-milliseconds内作出回应则为主观下线。适用于所有节点。客观下线监控的主节点发生故障时哨兵与哨兵之间通过is-master-down-by-addr命令互相交流并进行投票若票数满足要求则判断为下线。只适用于主节点。仲裁简单来说就是过个哨兵根据相关配置进行投票选举出最新的主节点。 注意实际应用中配置一个哨兵往往不能保证主节点一直能正常运行往往需要配置多个哨兵哨兵与哨兵之间还会互相监控。 搭建过程 此文的哨兵模式基于【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析普通方式、Docker搭建方式、Docker-Compose搭建方式进行搭建前置环境可前往这篇文章查看。 前情提要
开放相应的哨兵模式端口26379、26380、26381。默认端口为26379。启动时先启动主节点再启动从节点最后启动三个哨兵。 配置文件创建
配置项一览表
配置项描述port指定哨兵的监听端口默认为26379。bind指定哨兵绑定的IP地址。dir指定哨兵的工作目录用于存储持久化数据和日志文件。sentinel monitor master-name ip port quorum定义要监控的主节点。 master-name主节点的名称。 ip 和 port主节点的地址和端口号。 quorum需要同意故障转移的最少票数。sentinel down-after-milliseconds master-name milliseconds定义哨兵将主节点标记为下线的时间阈值。sentinel parallel-syncs master-name num定义同时进行故障转移的最大并行同步数量。sentinel failover-timeout master-name milliseconds定义故障转移操作的超时时间。sentinel auth-pass master-name password如果主节点需要密码验证使用此配置项提供密码。sentinel deny-scripts-reconfig master-name禁止从节点执行配置修改操作。sentinel leader-epoch master-name epoch指定当前哨兵的领导者纪元。 1.在data/路径下创建sentinel文件夹以及在sentinel文件夹下创建三个文件sentinel1.conf、sentinel2.conf、sentinel3.conf。
mkdir -p /data/sentinel--创建文件夹
cd /data/sentinel--进入到sentinel目录
touch sentinel1.conf sentinel2.conf sentinel3.conf---创建存放哨兵模式的配置文件
mkdir log--存放日志。2.sentinel1.conf配置文件。
port 26379
bind 0.0.0.0
daemonize yes
pidfile /var/run/sentinel1.pid
logfile /data/sentine/log/sentinel_26379.log
dir /tmp
sentinel monitor mymaster 48.233.48.98 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster daencodetop
sentinel failover-timeout mymaster 300003.sentinel2.conf配置文件。
port 26380
bind 0.0.0.0
daemonize yes
pidfile /var/run/sentinel2.pid
logfile /data/sentinel/log/sentinel_26380.log
dir /tmp
sentinel monitor mymaster 48.233.48.98 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster daencodetop
sentinel failover-timeout mymaster 300004.sentinel3.conf配置文件。
port 26381
bind 0.0.0.0
daemonize yes
pidfile /var/run/sentinel3.pid
logfile /data/sentinel/log/sentinel_26381.log
dir /tmp
sentinel monitor mymaster 48.233.48.98 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster daencodetop
sentinel failover-timeout mymaster 30000启动哨兵
1.进入到redis安装目录中的bin目录。
cd /usr/local/redis/bin2.依次启动三个哨兵。这里注意要先启动主从节点。
./redis-server /data/sentinel/sentinel1.conf --sentinel
./redis-server /data/sentinel/sentinel2.conf --sentinel
./redis-server /data/sentinel/sentinel3.conf --sentinel3.验证是否启动成功。 4.进入到26379哨兵查看节点信息。从下图红框部分可以看出为一主(name为mymaster)2从3哨兵。 注意如果红框内status状态为sdown则代表没有配置成功。要去检查一下主从复制的配置文件以及哨兵配置文件中的IP地址是否有误、密码是否有误以及要注意关闭防火墙的配置。我这里找了半天发现是自己的ip地址配错了配置文件一定要细心编写,关键点在于ip地址、密码、路径
./redis-cli -h 49.233.48.98 -p 26379
#查看节点信息
info sentinel场景测试 这里对master主节点6379进行shutdown之后查看哨兵节点的日志信息。 1.下线主节点master-6379。 2.查看其中一个哨兵的日志信息。 日志解读
sdown master mymaster 49.233.48.98 6379表示主服务器(mymaster)在IP地址为49.233.48.98端口为6379的节点上被判定为下线(sdown)。这可能是因为主服务器出现了故障或无法正常工作。new-epoch 1表示一个新的选举轮次(epoch)开始这是哨兵在选举新的主服务器时使用的计数器。此处的1表示当前轮次的编号。vote-for-leader 9ddfd87d9127f7f7f2eb7aba24bd422a7782f121 1表示哨兵节点已经投票给ID为9ddfd87d9127f7f7f2eb7aba24bd422a7782f121的实例来成为新的主服务器。1表示该节点的投票数。odown master mymaster 49.233.48.98 6379 #quorum 3/2表示主服务器(mymaster)正在执行故障转移操作并且需要获得至少3个哨兵节点的投票(quorum)以确保操作的可靠性。3/2表示当前获得的投票数。Next failover delay: I will not start a failover before Mon Aug 28 02:26:03 2023表示下一次故障转移操作的启动时间将在指定时间之后。在这种情况下在2023年8月28日02:26:03之前不会执行故障转移操作。config-update-from sentinel 9ddfd87d9127f7f7f2eb7aba24bd422a7782f121 10.0.16.11 26381 mymaster 49.233.48.98 6379表示哨兵节点从ID为9ddfd87d9127f7f7f2eb7aba24bd422a7782f121的实例获取到新的配置更新并且该实例的IP地址为10.0.16.11端口为26381。switch-master mymaster 49.233.48.98 6379 49.233.48.98 6380表示成功将主服务器切换到IP地址为49.233.48.98端口从6379切换为6380。slave slave 49.233.48.98:6381 49.233.48.98 6381 mymaster 49.233.48.98 6380表示一个新的从属服务器(slave)成功连接到主服务器(mymaster)从属服务器的IP地址为49.233.48.98端口为6381。sdown slave 49.233.48.98:6379 49.233.48.98 6379 mymaster 49.233.48.98 6380表示从属服务器(位于IP地址为49.233.48.98端口为6379的节点上)被判定为下线。 3.登录之前的6380从节点查看节点信息是否已经成为主节点。 可以看到已经成为新的master。 写在最后
有关于一文带你搞懂Redis哨兵机制以及其搭建方式到此就结束了。在搭建时编写的配置文件一定要详细检查、细心编写还要注意防火墙的关闭或者端口号的开发。感谢大家的阅读希望大家在评论区对此部分内容散发讨论便于学到更多的知识。