加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

实现故障恢复自动化:详解Redis哨兵技术

发布时间:2018-11-06 15:13:22 所属栏目:编程 来源:DBAplus社群
导读:在前面分享的《读完这篇文章,就根基搞定了Redis主从复制》中我们曾提到,Redis主从复制的浸染稀有据热备、负载平衡、妨碍规复等;但主从复制存在的一个题目是妨碍规复无法自动化。本文将要先容的哨兵,它基于Redis主从复制,首要浸染即是办理主节点妨碍恢
副问题[/!--empirenews.page--]

实现妨碍规复自动化:详解Redis哨兵技能

在前面分享的《读完这篇文章,就根基搞定了Redis主从复制》中我们曾提到,Redis主从复制的浸染稀有据热备、负载平衡、妨碍规复等;但主从复制存在的一个题目是妨碍规复无法自动化。本文将要先容的哨兵,它基于Redis主从复制,首要浸染即是办理主节点妨碍规复的自动化题目,进一步进步体系的高可用性。

注:本文内容基于Redis 3.0版本。

一、浸染和架构

1.浸染

在先容哨兵之前,起首从宏观角度回首一下Redis实现高可用相干的技能。它们包罗:耐久化、复制、哨兵和集群,其首要浸染息争决的题目是:

  • 耐久化:耐久化是最简朴的高可用要领(偶然乃至不被归为高可用的本领),首要浸染是数据备份,即将数据存储在硬盘,担保数据不会因历程退出而丢失。

  • 复制:复制是高可用Redis的基本,哨兵和集群都是在复制基本上实现高可用的。复制首要实现了数据的多机备份,以及对付读操纵的负载平衡和简朴的妨碍规复。缺陷是妨碍规复无法自动化;写操纵无法负载平衡;存储手段受到单机的限定。

  • 哨兵:在复制的基本上,哨兵实现了自动化的妨碍规复。缺陷是写操纵无法负载平衡;存储手段受到单机的限定。

  • 集群:通过集群,Redis办理了写操纵无法负载平衡,以及存储手段受到单机限定的题目,实现了较为完美的高可用方案。

具体内容可回首:

下面说回哨兵。

Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入。哨兵的焦点成果是主节点的自动妨碍转移。下面是Redis官方文档对付哨兵成果的描写:

  • 监控(Monitoring):哨兵会不绝地搜查主节点和从节点是否运作正常。

  • 自动妨碍转移(Automatic Failover):当主节点不能正常事变时,哨兵会开始自动妨碍转移操纵,它会将失效主节点的个中一个从节点进级为新的主节点,并让其他从节点改为复制新的主节点。

  • 设置提供者(Configuration Provider):客户端在初始化时,通过毗连哨兵来获适合前Redis处事的主节点地点。

  • 关照(Notification):哨兵可以将妨碍转移的功效发送给客户端。

个中,监控和自动妨碍转移成果,使得哨兵可以实时发明主节点妨碍并完成转移;而设置提供者和关照成果,则必要在与客户端的交互中才气浮现。

这里对“客户端”一词在文章中的用法做一个声名:在前面的文章中,只要通过API会见Redis处事器,城市称作客户端,包罗Redis-cli、Java客户端Jedis等。为了便于区辩白明,本文中的客户端并不包罗Redis-cli,而是比Redis-cli越发伟大:Redis-cli行使的是Redis提供的底层接口,而客户端则对这些接口、成果举办了封装,以便充实操作哨兵的设置提供者和关照成果。

2.架构

典范的哨兵架构图如下所示:

实现妨碍规复自动化:详解Redis哨兵技能

它由两部门构成:

  • 哨兵节点:哨兵体系由一个或多个哨兵节点构成,哨兵节点黑白凡的Redis节点,不存储数据。

  • 数据节点:主节点和从节点都是数据节点。

二、陈设

这一部门将陈设一个简朴的哨兵体系,包括1个主节点、2个从节点和3个哨兵节点。利便起见,全部这些节点都陈设在一台呆板上(局域网IP:192.168.92.128),行使端标语区分;且节点的设置尽也许简化。

1.陈设主从节点

哨兵体系中的主从节点,与平凡的主从节点设置是一样的,并不必要做任何特殊设置。下面别离是主节点(port=6379)和2个从节点(port=6380/6381)的设置文件,设置都较量简朴,不再详述:

  1. #redis-6379.conf  
  2. port 6379  
  3. daemonize yes  
  4. logfile "6379.log"  
  5. dbfilename "dump-6379.rdb"  
  6. #redis-6380.conf  
  7. port 6380  
  8. daemonize yes  
  9. logfile "6380.log"  
  10. dbfilename "dump-6380.rdb"  
  11. slaveof 192.168.92.128 6379  
  12. #redis-6381.conf  
  13. port 6381  
  14. daemonize yes  
  15. logfile "6381.log"  
  16. dbfilename "dump-6381.rdb"  
  17. slaveof 192.168.92.128 6379 

设置完成后,依次启动主节点和从节点:

  • redis-server redis-6379.conf
  • redis-server redis-6380.conf
  • redis-server redis-6381.conf

节点启动后,毗连主节点查察主从状态是否正常,如下图所示:

实现妨碍规复自动化:详解Redis哨兵技能

2.陈设哨兵节点

哨兵节点本质上黑白凡的Redis节点。

3个哨兵节点的设置险些是完全一样的,首要区别在于端标语的差异(26379 / 26380 / 263 81),下面以26379节点为例先容节点的设置和启动方法;设置部门只管简化,更多设置会在后头先容:

  1. #sentinel-26379.conf  
  2. port 26379  
  3. daemonize yes  
  4. logfile "26379.log"  
  5. sentinel monitor mymaster 192.168.92.128 6379 2 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读