目录
一、主从复架构搭建
二、哨兵模式搭建
2.1背景
2.2哨兵模式介绍
2.3 Sentinel三大工作任务
1监控(Monitoring)
2提醒(Notification)
3自动故障迁移(Automatic failover)
4核心流程
2.4 安装配置
一、主从复架构搭建
单节点redis的读取并发能力是有上线的,要进一步提高redis读的并发能力,就需要搭建主从集群,实现读写分离。下图就是基础的主从架构。
共包含三个节点,一个主节点,两个从节点。
我们测试采用一主两从的架构,3台服务器。
主从部署 | ||
编号 | IP | 主/从 |
1 | 192.168.2.212 | 从 |
2 | 192.168.2.213 | 主 |
3 | 192.168.2.214 | 从 |
先来看下redis.conf配置
#添加本机的ip
bind 192.168.2.211
#端口
port 36379
#守护进程
daemonize yes
#pid存储目录
pidfile /app/software/redis-6/run/redis_36379.pid
#日志存储目录
logfile /app/software/redis-6/log/redis_36379.log
#数据存储目录,目录要提前创建好
dir /app/software/redis-6/data/
# AOF持久化
appendonly yes
## 从那个节点进行数据复制
replicaof 192.168.2.213 36379
masterauth 123456
requirepass 123456
启动
/app/software/redis-6/bin/redis-server /app/software/redis-6/conf/redis.conf
查看日志master节点同步到两个 slave
命令行使用 INFO REPLICATION 查看副本信息
在master节点 写入 <hadoop,hbase> ,在slave节点可以查看到 value结果
二、哨兵模式搭建
2.1背景
前面搭建了主从,当主服务器宕机后,需要手动把一台从服务器切换为主服务器,人工干预费事费力,还会造成一段时间内服务不可用。
2.2哨兵模式介绍
Redis提供了哨兵的命令,是一个独立的进程。
原理:哨兵通过发送命令给多个节点,等待Redis服务器响应,从而监控运行的多个Redis实例的运行情况
当哨兵监测到master宕机,会自动将slave切换成master,通过通知其他的从服务器,修改配置文件切换主机。
2.3 Sentinel三大工作任务
1、监控(Monitoring)
Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
2、提醒(Notification)
当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
3、自动故障迁移(Automatic failover)
当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器
当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
4、核心流程
- 每秒ping,超过时间不响应 则认为主观下线
- 满足多个,则认为是客观下线
- 投票选择主节点
- 如果没有足够的节点同意master下线,则状态会被移除
2.4 安装配置
配置3个哨兵,每个哨兵的配置都是一样的,sentinel-2.conf
port 33379
bind 192.168.2.213
daemonize yes
pidfile "/app/software/redis-6/run/redis-sentinel-2.pid"
logfile "/app/software/redis-6/log/sentinel_66379.log"
dir "/tmp"
sentinel monitor mymaster 192.168.2.213 46379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster 123456
sentinel failover-timeout mymaster 30000
启动
/app/software/redis-6/bin/redis-server /app/software/redis-6/conf/sentinel-2.conf --sentinel
/app/software/redis-6/bin/redis-server /app/software/redis-6/conf/sentinel-1.conf --sentinel
/app/software/redis-6/bin/redis-server /app/software/redis-6/conf/sentinel-3.conf --sentinel
都启动后,查看状态和日志
sentinel-x.conf配置文件后面 自动添加 哨兵监控信息