Java架构技术栈

Redis Sentinel与高可用主从复制

2020-01-14  本文已影响0人  若丨寒

2020年面试复习Redis建议你看这套999元的教程就够了!

知识点

常见问题

fork(内存页的拷贝)


改善fork

子进程开销和优化

Aof追加阻塞(刷盘策略)

图片描述

AOF阻塞定位

图片描述

Redis复制


configuration

图片描述 图片描述
slaveof ip port
slave-read-only yes

方式 命令 配置
优点 无需重启 统一配置
缺点 不便于管理 需要重启
主机:
conf:
守护进程
daemonize yes
pidfile /var/run/redis-6379.pid
logfile '6379.log'
关掉 save 300 1 等三个检测配置
dbfilename dump-6379.rdb
dir /opt/soft/data
从机:
slave-read-only yes
dbfilename dump-6380.rdb
slaveof 127.0.0.1 6379
分别启动
我们可以使用redis-cli info replication 来检查主从情况

run id

全量复制

图片描述

部分复制

图片描述

slave宕机和master宕机(how to automate?)

图片描述 图片描述

主从复制遇到的问题

高可用

规避全量复制

复制风暴

当主节点宕机重启之后,所有的从节点都要进行一次全量复制
当然,高可用(从当主)也可以解决这个问题

主从复制的问题

生命周期

Redis Sentine 架构

sentine对redis进行故障判断,故障转移,通知客户端
可以监控多套redis主从架构,通过master-name作为标识

图片描述

安装配置

图片描述

Redis主节点

图片描述

Redis从节点

图片描述

sentinel配置

port ${port}
dir "/opt/soft/redis/data/"
logfile "$(port}.log"
sentinel monitor mymaster 127.0.0.170002
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

[root@localhost ~]# redis-server redis-conf
[root@localhost ~]# redis-cli -p 7000 ping
PONG
[root@localhost ~]# redis-server redis-7001-conf 
[root@localhost ~]# redis-server redis-7002-conf 
[root@localhost ~]# ps -ef | grep redis-server | grep 700
root      6646     1  0 11:51 ?        00:00:00 redis-server *:7000
root      6673     1  0 11:54 ?        00:00:00 redis-server *:7001
root      6678     1  0 11:54 ?        00:00:00 redis-server *:7002

[root@localhost ~]# redis-cli -p 7000 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=7001,state=online,offset=85,lag=0
slave1:ip=127.0.0.1,port=7002,state=online,offset=85,lag=0
master_repl_offset:99
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:98

图片描述
redis-sentinel redis-sentinel-26379(配置文件)
redis-cli -p 26379

故障转移演练(客户端)

图片描述 图片描述 图片描述

客户端高可用

图片描述

客户端接入流程

java

图片描述

py

图片描述

故障转移

图片描述

三个定时任务

图片描述 图片描述 图片描述

主观下线和客观下线

图片描述

领导者选举

图片描述

故障转移(sentinel领导者节点完成)

选择最好的slave节点

节点运维问题


主节点下线
手动故障转移,忽略主观下线和客观下线和领导者选举,只有故障转移的过程 
sentinel failover masterName

图片描述

sentinel上线

高可用读写分离

从节点的作用

图片描述

客户端

作者:侠客岛的含笑
链接:https://www.imooc.com/article/287687
来源:慕课网
本文首次发布于慕课网 ,转载请注明出处,谢谢合作

上一篇 下一篇

猜你喜欢

热点阅读