实现故障恢复自动化:详解Redis哨兵技术
副标题[/!--empirenews.page--]
在前面分享的《读完这篇文章,就基本搞定了Redis主从复制》中我们曾提到,Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。 注:本文内容基于Redis 3.0版本。 一、作用和架构 1.作用 在介绍哨兵之前,首先从宏观角度回顾一下Redis实现高可用相关的技术。它们包括:持久化、复制、哨兵和集群,其主要作用和解决的问题是:
详细内容可回顾: 下面说回哨兵。 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入。哨兵的核心功能是主节点的自动故障转移。下面是Redis官方文档对于哨兵功能的描述:
其中,监控和自动故障转移功能,使得哨兵可以及时发现主节点故障并完成转移;而配置提供者和通知功能,则需要在与客户端的交互中才能体现。 这里对“客户端”一词在文章中的用法做一个说明:在前面的文章中,只要通过API访问Redis服务器,都会称作客户端,包括Redis-cli、Java客户端Jedis等。为了便于区分说明,本文中的客户端并不包括Redis-cli,而是比Redis-cli更加复杂:Redis-cli使用的是Redis提供的底层接口,而客户端则对这些接口、功能进行了封装,以便充分利用哨兵的配置提供者和通知功能。 2.架构 典型的哨兵架构图如下所示: 它由两部分组成:
二、部署 这一部分将部署一个简单的哨兵系统,包含1个主节点、2个从节点和3个哨兵节点。方便起见,所有这些节点都部署在一台机器上(局域网IP:192.168.92.128),使用端口号区分;且节点的配置尽可能简化。 1.部署主从节点 哨兵系统中的主从节点,与普通的主从节点配置是一样的,并不需要做任何额外配置。下面分别是主节点(port=6379)和2个从节点(port=6380/6381)的配置文件,配置都比较简单,不再详述:
配置完成后,依次启动主节点和从节点:
节点启动后,连接主节点查看主从状态是否正常,如下图所示: 2.部署哨兵节点 哨兵节点本质上是特殊的Redis节点。 3个哨兵节点的配置几乎是完全一样的,主要区别在于端口号的不同(26379 / 26380 / 263 81),下面以26379节点为例介绍节点的配置和启动方式;配置部分尽量简化,更多配置会在后面介绍:
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |