文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【NoSQL】抛弃VIP,使用consul和sentinel构建redis的高可用系统

2024-04-02 19:55

关注

背景:

1.传统redis高可用方案只加了sentinel,在主库故障后,虽然可以选主,然后切换只读参数,但是,对应用来说却需要更改连接的IP或者在hosts中更改解析。算得上是半自动。
2.利用consul系统的服务注册与服务健康检查功能可以实现全自动的故障切换与地址解析。

架构:

【NoSQL】抛弃VIP,使用consul和sentinel构建redis的高可用系统

搭建:

1.建立consul集群,在redis节点上布置consul agent
2.建立sentinel集群
3.注册服务(重点)


    情况1:redis2222为主实例,redis3333为从实例
          通过在脚本对redis的主从属性进行检查, "args":["/root/check/redis_role.sh","2222","master"],
    在脚本中,我们设置了读取传入的两个参数并进行使用,在consul配置文件中,对传入参数
    需要使用“,”分割,并且无论数字或者字符串都需要加上双引号。
    2222的实例中role为master,3333的实例role为 slave。分别满足了redis-master和redis-slave
    的健康检查,consul在解析redis-master.service.consul和redis-slave.service.consul时分别指向
    了redis2222的主机和redis3333的地址。
    此时:   ping redis-master.service.consul 》192.168.1.131
                  ping redis-slave.service.consul 》192.168.1.104
                  APP可以通过redis-master.service.consul:2222对redis进行写入,
                  通过redis-master.service.consul:3333对redis进行分散读请求
    consul web页面如图

【NoSQL】抛弃VIP,使用consul和sentinel构建redis的高可用系统
【NoSQL】抛弃VIP,使用consul和sentinel构建redis的高可用系统


情况2:redis2222节点故障,sentinel自动提升redis3333节点为主节点,2222重新上线后,被
    sentinel集群配置为指向3333的从节点。
         此时: ping redis-master.service.consul 》192.168.1.104
               ping redis-slave.service.consul 》192.168.1.131
    APP可以通过redis-master.service.consul:3333对redis进行写入,
    通过redis-master.service.consul:2222对redis进行分散读请求
    consul web页面如图

【NoSQL】抛弃VIP,使用consul和sentinel构建redis的高可用系统
【NoSQL】抛弃VIP,使用consul和sentinel构建redis的高可用系统


后记:   
    1.本文中为了显著区分两个redis实例,对端口进行了区分,实际应用推荐使用相同端口(如2222)
        这样每次访问redis-master.service.consul:2222都能访问到主实例
            每次访问redis-master.service.consul:2222都能访问到从实例
    2. consul定期执行健康检测脚本并接收返回值0作为服务处于正常的标志,返回值1作为服务处于警告
      状态,除此之外任何其他返回值都被认为服务处于故障状态。实际使用时根据自身情况设置健康检测脚本
      执行的频率
    3.这种切换架构的便利性建立在数据库端可以自洽的完成主从选举与切换的特性上,同理,这种思路还
      可以用在consul+MongoDB副本集,consul+PXC集群上。
    4.官方文档地址:`https://www.consul.io/docs/index.html`
      相关配置文件已放置在GitHub:`https://github.com/naughtyGitCat/HA_DB/tree/master/Consul`
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯