项目场景:
提示:这里简述项目相关背景:
因业务需要,搭建了三台redis集群,使用哨兵(sentinel)+keepalived的方式
https://blog.csdn.net/Liu_xiaoxing/article/details/122000495
三台设备:10.97.141.43、10.97.141.44和10.97.141.45 master:10.97.141.45(rsgyredisjq03) slave:10.97.141.43/10.97.141.44(rsgyredisjq01/rsgyredisjq02) vip:10.97.141.52
问题描述
开发反应说连接vip报 READONLY You can 't write against a read only replica错误
原因分析:
因为主从切换,vip并没有切换过去,导致VIP登录的为从节点redis,而从节点是无法进行写入,或者删除操作的!
解决方案:
解决方式一:
可以把从节点修改权限 打开redis.conf,修改配置文件的slave-read-only为no (因为安全问题,现场并不能允许这样改)
解决方式二: 由于主从切换,但vip却没有切换,我们定位到keepalived服务这里,检查我们的脚本是否有问题
vip生效时一个网卡会有两个地址:
- 看keepalived 运行状态:tail -f /var/log/messages
中间过程大概就是发现端口赋予不了地址,具体还是要看日志报错什么 最后是都重启了keepalived服务正常了 systemctl status keepalived.service
|