# 高可用配置搭配Sentinel机制
---> Redis (Replica)
client ---> Redis (Master)
---> Redis (Replica)
-------------------------------------------------
sentinel
基本上sentinel不允许localhost以外的连线,如果需要外部连入则除了关闭保护模式外,也需要额外配置bind或是防火墙,避免安全性风险.
# 预设
# protected-mode yes
# 关闭保护模式
protected-mode no
bind 192.138.10.1 ...
sentinel 的实体端口.
# 预设
port 26379
是否设定sentinel跑在背景还是前景模式.
# 预设
daemonize no
# 背景模式
daemonize yes
搭配上面daemon启动方式使用,会在启动时写入指定路径档案,关闭服务时则删除.
# 预设
pidfile /var/run/redis-sentinel.pid
设定sentinel的日志资料.
# 预设
logfile ""
# 加入档案路径
logfile "/tmp/redis-sentinel_26379.log"
设定NAT网路环境中的IP与Port.
# 预设
# sentinel announce-ip 1.2.3.4
# sentinel announce-port 26379
设定暂放资料夹.
# 预设
dir /tmp
设定监控目前的Master与当Master发生异常时需要几个sentinel确认才可以切换.
# 预设
# Redis mymaster ip=127.0.0.1 port 6379,当异常发生时需要有2台sentinel认可才可以切换
sentinel monitor mymaster 127.0.0.1 6379 2
# sentinel切换成一台
sentinel monitor mymaster 127.0.0.1 6379 1
设定for sentinel连线到Redis Master时所需要的密码.
# 预设
# sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
设定for sentinel连线到Redis Master时所需要的使用者.
sentinel auth-user <master-name> <username>
设定当Replica与Master资料同步停止超过多少秒则不能成为Master.
# 预设
# 资料同步停止不可以超过30秒
sentinel down-after-milliseconds mymaster 30000
从Redis 6.2 版本支援使用者相关权限设定.
# 预设
# user worker +@admin +@connection ~* on >ffa9203c493aa99
设定acl记录中的项目上限.
# 预设
acllog-max-len 128
透过档案设定acl.需注意如果sentinel.config已经设定acl,则会拒绝档案acl设定.
# 预设
# aclfile /etc/redis/sentinel-users.acl
设定sentinel密码
# 预设
# requirepass <password>
设定sentinel与其他sentinel间连线的使用者.
# 预设
sentinel sentinel-user <username>
设定sentinel与其他sentinel间的连线密码.
# 预设
sentinel sentinel-pass <password>
设定与Master平行同步资料。
# 预设
sentinel parallel-syncs mymaster 1
在failover切换时需要多少时间内完成,否则失败.
# 预设 3分钟
sentinel failover-timeout mymaster 180000
sentinel notification-script 和 sentinel reconfig-script 脚本依序被执行时,执行结果回应1时则会重试10次,回应2时则不会重试,中断脚本进行则会收到回应1,脚本执行时间最长不可以超过60秒.
通过脚本设定当sentinel有事件发生时,发送讯息或是电子邮件通知相关人员.
# 预设
# sentinel notification-script mymaster /var/redis/notify.sh
通过脚本设定Master的组态档.
# 预设
# sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
设定是否不可以在sentinel运行中修改CLIENTS RECONFIGURATION SCRIPT脚本.
# 预设
sentinel deny-scripts-reconfig yes
透过指定将Master的组态档更名.
设定是否以Server主机名代替连线IP.
# 预设
SENTINEL resolve-hostnames no
当设定以Server主机名代替连线IP时,主机名称是否要唯一.
# 预设
SENTINEL announce-hostnames no
<<: DAY23 - 我的网站要分析!网站分析工具的选择和态度(1)
>>: Day25:【技术篇】JavaScript 套件 - classnames
各位朋友好,欢迎大家观看此篇文章,这次暑假因为疫情的关系而开始远距教学,刚好也趁此机会让我好好学习,...
一、策略 在1880年代,科学家提倡使用占星术预测未来是很流行的,但到了现代科学,尤其是做交易,我们...
各位大大好, 第一次发文, 想请教有无推荐的mail server,公司用,约100使用者, 有看过...
前情提要 一般我们在做传值动作的时候,会有好几种方式可以做,像是用 Segue、Closure、De...
前言 JavaScript 相较是个自由的语言,在学习语法时会发现,咦 明明规则是这样,怎麽那样也可...