配置Redis哨兵集群所遇到的问题

这篇具有很好参考价值的文章主要介绍了配置Redis哨兵集群所遇到的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置Redis哨兵集群时日志显示+sdown slave的问题

一、配置及其环境描述(问题产生的原因是因为Redis复制中主节点对从节点的ip配置错误,从而导致哨兵无法识别从节点,进而无法进行故障转移)

1.操作系统:Linux

 虚拟机:VMware Workstation 16 Pro 、WSL

 Redis主从复制配置为在VM虚拟机上设置一台master,WSL虚拟机上设置两台slave。

 Redis哨兵配置为在WSL上设置三台哨兵。

 注:虚拟机一共只开启了两台,分别是VM和WSL。在WSL上我分别在两个端口部署了redis-server,以达到两个slave的目的。然后在WSL上我又在三个端口上部署了三个哨兵,用于在监视VM上部署的master。

2.配置的哨兵集群想达成如下效果:

 当我使用shutdown命令关闭部署在VM上的master时,哨兵能够即时检测到master已经宕机,并进行投票选举选出新的master。

3.master的内网ip及端口为:192.xxx.xxx.xxx:6379,两个slave的内网ip及端口为:172.xxx.xxx.xxx:6380与172.xxx.xxx.xxx:6381

 文章来源地址https://www.toymoban.com/news/detail-655709.html

二、问题复现

 启动一主二从,并启动三台哨兵。手动使master宕机,按照理想状态得到的结果应该是哨兵从剩下的两个slave中选取一个成为新的master,但是剩下的两台slave只是在原地等待旧master的回归,并未有新的master产生。

 

三、分析并解决问题

1.1)翻阅刚启动哨兵时候的哨兵日志,发现如下内容

配置Redis哨兵集群所遇到的问题

"+sdown slave",说明一件事,就是哨兵无法与我们的两个从机取得联系(哨兵认为slave主观下线)。那么也很容易就明白了,在之后的投票选出新master的过程中,也无法在两个slave中选出。同时,我们还注意到一件事,从节点的ip竟然是以192开头的,这不对劲,因为从节点的ip应该以172开头。

2)启动Redis复制的一主二从,通过在master上设置键值对,并且在两个从机上取得了对应的键值对可以验证出,主从架构是搭建成功的。然后在master上使用命令"info replication"查询主从机联机状态如下图

配置Redis哨兵集群所遇到的问题

从图中看出,两台slave是成功连到了master的。但是,slave的ip开头竟然是192而不是172,说明,master识别从机的ip时,应该出现了问题。

3)那么解决问题就应该从master正确识别slave的ip地址入手了。在Redis配置文件中可以配置配置项"slave-announce-ip  从机ip地址",slave-announce-ip 用于指定从节点在复制(Replication)过程中向主节点汇报的 IP 地址。通过在从节点的Redis配置文件中配置该配置项,我们可以使得master正确的反映出slave的ip地址。在经过上述配置后,我们再在master中使用"info replication"查询主从机联机状态时,发现slave的ip地址显示正确,此时再去哨兵的日志文件中检查,发现,哨兵成功的联系到了两个slave。

配置Redis哨兵集群所遇到的问题

注:哨兵成功联系到slave的哨兵日志显示应该是下面的截图所示的内容

配置Redis哨兵集群所遇到的问题

这里的"+slave slave"表示哨兵成功与slave的IP以172开头,端口为6381的slave联系成功。

4)再次使master宕机,发现哨兵成功的选举出了新的master,并变更了相应的Redis配置(使得旧的master成为新的master的slave,并使得原本效忠于旧master的slave重新效忠于新的master)

2.1)因为哨兵有在启动的时候会将一些主从机以及自己的基本信息写进哨兵配置文件的操作,所以,上述流程的分析中还可以加上分析哨兵配置文件的流程。

2)具体问题具体分析,但是分析流程可以相同

 

到了这里,关于配置Redis哨兵集群所遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis学习笔记02(主从同步,哨兵,哨兵集群)

    redis具有高可靠性:1.数据尽量减少丢失(AOF和RDB来保障) 2.服务尽量减少中断.第二点通过增加冗余副本来保障。 读写分离:  减少保障数据一致性的开销。修改操作只会在主库上进行。 同步过程  1.psync包括了主库runID和复制进度offset。第一次采用全量复制协议(主库bgsav

    2024年02月02日
    浏览(75)
  • 【Redis】3、Redis主从复制、哨兵、集群

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能

    2024年02月09日
    浏览(29)
  • Redis 主从复制 哨兵 集群

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能

    2024年02月11日
    浏览(36)
  • Redis --- 哨兵、分片集群

    Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。   集群结构和作用 哨兵的结构如图:   哨兵的作用如下: 监控 :Sentinel 会不断检查您的master和slave是否按预期工作 自动故障恢复 :如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的

    2024年02月03日
    浏览(26)
  • redis主从复制、哨兵与集群

    目录 一、概述 二、redis主从复制 1、概念 2、主从复制的作用 3、主从复制流程 4、搭建Redis 主从复制实验 ①在三台服务器上安装redis (1)关闭防火墙和安全机制 (2)修改内核参数 (3)安装redis (4)创建redis工作目录 (5)准备环境变量 (6)定义systemd服务管理脚本 ②修改

    2024年02月03日
    浏览(33)
  • Redis哨兵集群(两台主机)

    一.部署 因为架构要求,只分配了两台服务器,要搭建Redis集群,为此针对两台服务器搭建了一套特殊的哨兵集群,特殊在不能无限切换, 只能抗住1-2次宕机或网络故障,1-2次故障之后,集群切换机制便不能使用,需要人工按后文的步骤修复; 1.前期准备 准备AB两台服务器部

    2024年02月11日
    浏览(78)
  • redis的主从复制、哨兵、集群

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。 原理: 主从关系确定好后,开启从节点时,会发送一个sync的同步命令给主节点,主节点接收到后会把redis内存

    2024年02月06日
    浏览(31)
  • 搭建Redis主从集群和哨兵

    说明:单机的Redis存在许多的问题,如数据丢失问题、高并发问题、故障恢复问题、海量数据的存储能力问题,针对这四个问题,对应解决方式有:数据持久化(参考:http://t.csdn.cn/SSyBi)、搭建主从集群、Redis哨兵和搭建分片集群; 本文介绍搭建Redis主从集群和哨兵,用以解

    2024年02月16日
    浏览(28)
  • 3.Redis主从复制、哨兵、集群

    Redis主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave):数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点:且 一个主节点可以有多个从节点(或没有从节点),但一个从节点只

    2024年02月12日
    浏览(51)
  • redis之主从复制、哨兵、集群

    在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 高可用的计算公式是1-(宕机时间)/(宕机时间+运行时间)有点类似与网络传输的参数误码率,我们用9的个数表示可用性: 2个9:99%,一年内宕

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包