Redis哨兵(Sentinel)模式部署
Redis哨兵(Sentinel)模式
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。
用文字描述一下故障切换(failover)的过程。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。
配置3个哨兵和1主2从的Redis服务器。(一主二从三哨兵)
服务类型 | 是否是主服务器 | IP地址 | 端口 |
Redis | 是 | 192.168.11.128 | 6379 |
Redis | 否 | 192.168.11.129 | 6379 |
Redis | 否 | 192.168.11.130 | 6379 |
Sentinel | - | 192.168.11.128 | 26379 |
Sentinel | - | 192.168.11.129 | 26379 |
Sentinel | - | 192.168.11.130 | 26379 |
https://download.redis.io/releases/redis-6.2.1.tar.gz
# wget https://download.redis.io/releases/redis-6.2.1.tar.gz
# tar -xvzf redis-6.2.1.tar.gz
#redis将以守护进程的方式运行,这样可以在redis服务启动的窗口中再可以进行其它操作
pidfile "/var/run/redis_6379.pid"
#设置redis客户端或者远程机器连接redis服务器需要的密码
# Redis搭建sentinel,无法主从自动切换,一直卡在-sdown sentinel,redis-sentinel有保护模式,所以要将这个模块关闭!
logfile "/data/redis/logs/sentinel_26379.log"
#监视一个主服务器(redis主节点), 这个主服务器的名称为mymaster,IP地址为172.18.117.72,端口为6379。
#而将这个主服务器判断为失效至少需要1个Sentinel同意。只要同意Sentinel的数量不达标,自动故障迁移就不会执行。
sentinel monitor mymaster 172.18.117.72 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000
sentinel auth-pass mymaster test123
sentinel parallel-syncs mymaster 1
1.先启动redis服务:(在三个节点分别执行,启动redis)
# /data/redis/redis-6.2.1/src/redis-server /data/redis/conf/redis.conf
# /data/redis/redis-6.2.1/src/redis-sentinel /data/redis/conf/sentinel.conf
在springboot中由原来单节点改成sentinel模式连接时,只需要增加sentinel配置信息即可:
更多推荐
所有评论(0)