历史版本8 :Linux 系统安装配置 Redis 哨兵 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:


目录:

1. 概念编辑

 1.1 版本

FineReport 版本
11.0

1.2 问题描述

主从模式最大的缺点就是当主节点宕机后,从节点无法自动上升为主节点对外提供服务,Redis 2.8 及以后版本提供了哨兵工具来实现自动化的系统监控和故障恢复功能,此方案在企业中也是常被采用的一种主流方案。

1.3 解决思路

FineReport 提供了哨兵模式来实现主从可以切换,故障可以转移,提高系统可用性。

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 哨兵主要起以下作用:

1)通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。

2)当哨兵监测到 master 宕机,会自动将 slave 切换成 master ,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

注:哨兵模式中将主服务器判断为失效至少需要 2 个 Sentinel 同意,所以至少要部署两个及以上的 Sentinel 。

哨兵模式如下图所示:

1586252371307203.png

2.  操作步骤编辑

本例以一主二从三哨兵结构为例。

2.1 环境准备

1)确保端口开放(或关闭防火墙)、网络通畅。

2)安装 Redis 时需对源码包编译,此步骤依赖 gcc 编译器,如果没有 gcc 环境,则需要自行安装,联网安装命令 yum install gcc gcc-c++

gcc -v #检查是否有 gcc 编译器

2.2 安装 Redis

2.2.1 下载源码包

可以选择官网下载,请参见:Redis 源码包 ,推荐的 Redis 4.0 之后的版本。

2.2.2 安装 Redis

命令如下所示:

mkdir /usr/redis  # 创建 Redis 目录
cd /usr/redis  # 进入目录
# 将 Redis 安装包传输到该目录下 #
tar -zxvf redis-3.2.11.tar.gz  # 解压安装包
cd /usr/redis/redis-3.2.11  # 进入解压目录
make 
make test
make install  # 安装命令
redis-server -v  # 检查安装结果

注:更多运维操作详情参见:Linux 系统 Redis 运维手册  。

2.3 开启主从三个节点

2.3.1 开启命令

命令如下所示:

#cd /path/to/redis
cd /usr/fine/redis-3.2.11/
#/path/to/redis-server /path/to/redis.conf
./src/redis-server redis.conf

2.3.2 redis.conf 文件解释

1)主节点 redis.conf 具体配置为:从节点配置仅比主节点配置多一行 slaveof {ip} {port} ,本例中为 slaveof 192.168.9.128 6379

2)第 84 行为端口,如下图所示:

1586251024402844.png

3)第 265 行为 slaveof <masterip> <masterport>,此属性只有从节点需要添加,也是主节点和从节点配置的唯一区别。

4)第 274 行为主节点密码(主节点也需要配置,因为他也有可能变为从节点)。

5)第 484 行为自身密码(需要注意的是主从节点的密码需要一样)。

6)第 542 行为内存配置。

2.3.3 查看进程

三个 Redis 进程开启后,用 redis-cli 查看进程信息(查看 info 下的 Replication 信息),命令如下所示:

./src/redis-cli -h 192.168.9.128 -p 6379 -a admin123456infoquit

详情参见:redis.conf

2.4 开启主从三个哨兵

2.4.1 开启命令

命令如下所示:

#cd /path/to/redis
cd /usr/fine/redis-3.2.11/
#/path/to/redis-sentinel /path/to/sentinel.conf
./src/redis-sentinel sentinel.conf

2.4.2 sentinel.conf 文件解释

1)第 21 行为端口。

2)第 69 行配置被监控的主节点。

3)第 92 行为主节点的密码。

2.3.3 查看进程

三个 Redis Sentinel 进程开启后,可是用 redis-cli 查看相关信息,如下所示:

./src/redis-cli -h 192.168.9.130 -p 26379
PING
SENTINEL masters
SENTINEL slaves  mymaster
SENTINEL get-master-addr-by-name  mymaster
quit

详情参见:sentinel.conf

3. 注意事项编辑

3.1 哨兵集群模式优劣

3.1.1 优点

1)哨兵集群模式是基于主从模式的,所有主从的优点,哨兵模式同样具有;
2)主从可以切换,故障可以转移,系统可用性更好;
3)哨兵模式是主从模式的升级,系统更健壮,可用性更高。

3.1.2 缺点

不能支持高并发,哨兵模式能提供写入功能的也就只有主节点。