文章目录

一、概念架构简述
1. Redis Sentinel简述

Redis Sentinel是分布式系统中监控Redis主从服务器,并从主服务器下显示自动故障转移的模式。
其中4个特性为监控、提醒、自动故障转移、配置提供者。

2. Redis Sentinel优点
  • 哨兵 是基于主从模式的,所有主从的优点,哨兵模式都有。
  • 主从可以自动切换,系统更健壮,可用性高。
  • Sentinel会不断的检查你的主服务器是否运作正常。当被监控的某一个Redis 出现问题是,Sentinel可以通过API向管理员或者其他应用程序发送通知。
3. Redis Sentinel缺点
  • 主从切换需要时间,丢失数据
  • 还是没有解决主节点写的压力
  • 主节点的写能力,存储能力受到单机的限制;动态扩展困难复杂,对于集群,容量- 达到上限时再现扩容会变得很复杂。
二、哨兵搭建实现
2.1. 编写配置文件

三个节点分别创建sentinel.conf,依次执行下面命令:

vim /usr/local/redis/conf/sentiel.conf

并添加以下配置(3个节点配置一样)

# 放行所有ip限制
bind 0.0.0.0

# 进程端口号
port 26379

# 后台启动
daemonize yes

# 日志记录文件
logfile "/usr/local/redis/log/sentinel.log"

# 进程编号记录文件
pidfile /var/run/redis-sentinel.pid

# 提示Sentinel 去监视一个名为 mymaster 的主服务器 仲裁 =环境3/2+1
sentinel monitor mymaster xxx.xxx.92.100 6379 2

# 访问主节点的密码
sentinel auth-pass mymaster 123456

# Sentinel 认为服务器已经断线所需要的毫秒数 默认30秒 这里演示10秒
sentinel down-after-milliseconds mymaster 10000

# 若Sentinel 在改配置值内未能完成 failover(故障转移) 操作,则认为本次 failover 失败180秒 3分钟
2.2. 启动rendis

首先分别依次启动3个redis服务

# 查看redis进程
ps -ef |grep redis

# 启动redis服务
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf

#查看主从节点信息
2.3. 启动sentinel服务

在redis服务启动正常的前提下:依次启动3个sentinel服务

/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentiel.conf
2.4. 查看哨兵启动日志
tail
2.5. 日志详情
[root@bigdata01 ~]# tail -f /usr/local/redis/log/sentinel.log 
13787:X 04 Jul 2021 22:20:34.112 # Configuration loaded
13787:X 04 Jul 2021 22:20:34.117 * Increased maximum number of open files to 10032 (it was originally set to 1024).
13787:X 04 Jul 2021 22:20:34.117 * monotonic clock: POSIX clock_gettime
13787:X 04 Jul 2021 22:20:34.121 * Running mode=sentinel, port=26379.
13787:X 04 Jul 2021 22:20:34.122 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
13787:X 04 Jul 2021 22:20:34.124 # Sentinel ID is 25a49df0916d6745eabf1fcfb56f150b345554a5
13787:X 04 Jul 2021 22:20:34.125 # +monitor master mymaster xxx.xxx.92.100 6379 quorum 2