虚拟主机域名注册-常见问题服务器知识 → 操作系统

CentOS 8中如何使用Sentinel设置Redis以实现高可用性

  Redis通过Redis Sentinel分布式系统提供高可用性。Sentinel帮助监控Redis实例,检测故障并自动进行角色切换,从而使Redis部署能够抵抗任何类型的故障。

  它具有监视Redis实例(主数据库和副本数据库)的功能,支持通过脚本通知其他服务/进程或系统管理员,自动故障转移以在主数据库关闭时将副本提升到主数据库,并为客户端提供配置以发现当前数据库。提供特定服务的管理员。

  本文演示了如何在CentOS 8中使用Redis Sentinel设置高可用性的Redis,包括配置Sentinel、检查设置状态和测试故障转移。

  先决条件:

  如何在CentOS 8中设置Redis复制(禁用集群模式)

  测试环境设置

  Master Server and Sentinel1: 10.42.0.247

  Redis Replica1 and Sentinel2: 10.42.0.21

  Redis Replica2 and Sentinel3: 10.42.0.34

  根据Redis Sentinel文档,至少需要三个Sentinel实例才能进行可靠的部署。考虑到我们上面的设置,如果主服务器发生故障,Sentinels2和Sentinel3将就该故障达成一致,并能够授权故障转移,从而使客户端操作得以继续。

  步骤1:启动和启用Redis Sentinel服务

  1.在CentOS 8上,Redis Sentinel服务与Redis服务器一起安装(我们已经在Redis Replication Setup中进行了安装)。

  要启动Redis标记服务并使其能够在系统启动时自动启动,请使用以下systemctl命令。另外,通过检查其状态来确认它已启动并正在运行(在所有节点上执行此操作):

  # systemctl start redis-sentinel

  # systemctl enable redis-sentinel

  # systemctl status redis-sentinel

  启动Redis Sentinel服务

  步骤2:在所有Redis节点上配置Redis Sentinel

  2.在本节中,我们将介绍如何在我们所有节点上配置Sentinel。Sentinel服务的配置格式与Redis服务器类似。要对其进行配置,请使用/etc/redis-sentinel.conf自文件配置文件。

  首先,创建一个原始文件的备份,然后打开它进行编辑。

  # cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig

  # vi /etc/redis-sentinel.conf

  3.默认情况下,Sentinel监听端口26379,请在所有实例上验证。请注意,必须将bind参数注释掉(或设置为0.0.0.0)。

  port 26379

  设置Sentinel侦听接口和端口

  4.接下来,告诉Sentinel监视我们的主服务器。你可以把 "mymaster "换成一个自定义的名称。

  #On Master Server and Sentinel1

  sentinel monitor mymaster 127.0.0.1 6379 2

  #On Replica1 and Sentinel2

  sentinel monitor mymaster 10.42.0.247 6379 2

  #On Replica1 and Sentinel3

  sentinel monitor mymaster 10.42.0.247 6379 2

  将Redis Master设置为Monitor

  重要提示:当重启服务时,必须将sendinel monitor语句放在sendinel auth-pass语句之前,以避免出现 "No such master with the specified name. "的错误。

  5.如果要监视的Redis主服务器设置了密码(在本例中为主服务器),请提供密码,以便Sentinel实例可以使用受保护实例进行身份验证。

  sentinel auth-pass mymaster Securep@55Here

  设置主认证密码

  6.然后设置主机(或任何附加的副本或标记)不访问的毫秒数,以将其视为“ 主观关闭 ”状态。

  以下配置意味着,只要我们在5秒内(1秒等于1000毫秒)没有收到来自ping的任何答复,主机就会被视为发生故障。

  sentinel down-after-milliseconds mymaster 5000

  设置主停机时间

  7.接下来,设置故障转移超时,单位是毫秒,它定义了很多东西(请阅读配置文件中的参数文档)。

  sentinel failover-timeout mymaster 180000

  设置故障转移超时

  8.然后,设置在故障转移后可以重新配置为使用新主服务器的副本数。由于我们有两个副本,因此我们将设置一个副本,将另一个副本提升为新的主副本。

  sentinel parallel-syncs mymaster 1

  设置并行同步副本数

  请注意,Redis Replica1和Sentinel2以及Reddis Replica1和Sentinel2上的配置文件应该相同。

  9.接下来,在所有节点上重新启动Sentinel服务以应用最近的更改。

  # systemctl restart redis-sentinel

  10.接下来,在所有节点上的防火墙中打开端口26379,以使Sentinel实例开始通话,并使用firewall-cmd 接收来自其他Sentinel实例的连接。

  # firewall-cmd --zone=public --permanent --add-port=26379/tcp

  # firewall-cmd --reload

  11.所有的副本都将被自动发现。重要的是,Sentinel 会自动更新配置,并提供关于副本的其他信息。您可以通过打开每个实例的 Sentinel 配置文件并查看该文件来确认。

  例如,当您查看主服务器的配置文件的末尾时,应该可以看到如下截图所示的已知-sentinels和已知-replica语句。

  在Master中自动生成的配置

  在copy1和copy2上应该是相同的情况。

  在副本服务器1中自动生成的配置

  在Replica2中自动生成的配置

  请注意,每次在故障转移期间将副本提升为主状态时,以及每次在设置中发现新的Sentinel时,Sentinel配置也会被重写/更新。

  步骤3:检查Redis Sentinel设置状态

  12.现在,使用info sentinel命令,如下所示检查主服务器上的Sentinel状态/信息。

  # redis-cli -p 26379 info sentinel

  从以下屏幕截图中看到的命令输出中,我们有两个副本/从属服务器和三个sentinel。

  检查主控上的Sentinel信息

  13.要显示有关主服务器的详细信息(称为mymaster),请使用sentinel master命令。

  # redis-cli -p 26379 sentinel master mymaster

  显示有关Sentinel Master的详细信息

  14.要显示有关从站和sentinel的详细信息,请分别使用sentinel slaves命令和sentinel sentinels命令。

  # redis-cli -p 26379 sentinel slaves mymaster

  # redis-cli -p 26379 sentinel sentinels mymaster

  15.接下来,按如下所示使用sentinel get-master-addr-by-name命令从从属实例中按名称询问主服务器的地址。

  输出应为当前主实例的IP地址和端口:

  # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

  在从站上按名称获取主站地址

  步骤4:测试Sentinel故障转移

  16.最后,让我们在Sentinel设置中测试自动故障转移。在Redis / Sentinel主机上,使Redis主机(在端口6379上运行)睡眠60秒。然后按以下方式查询副本/从属服务器上当前主服务器的地址。

  # redis-cli -p 6379

  127.0.0.1:6379> AUTH Securep@55Here

  127.0.0.1:6379> debug sleep 60

  # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

  # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

  从查询的输出中,新的主服务器现在是IP地址为10.42.0.34的副本/从服务器2,如以下屏幕截图所示。

  测试Redis Sentinel故障转移

  您可以从Redis Sentinel文档中获取更多信息。在本系列的下一篇,也就是最后一篇中,我们将分析如何在CentOS 8中设置Redis集群(启用集群模式)。这将是一篇独立于前两篇的文章。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:RHEL 8怎么重置忘记的root密码
下一篇:Linux怎么监视RAM使用情况
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部