项目场景:

提示:这里简述项目相关背景:

因业务需要,搭建了三台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生效时一个网卡会有两个地址:
在这里插入图片描述

  1. 看keepalived 运行状态:tail -f /var/log/messages
    中间过程大概就是发现端口赋予不了地址,具体还是要看日志报错什么
    最后是都重启了keepalived服务正常了 systemctl status keepalived.service
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐