1、问题现象
线上部署一个40分片的Redis Cluster集群,初始化的时候日志输出一直是Waiting for the cluster to join ......(大集群初始化的时候会出现时间长)
2、问题分析
1)集群各节点实例肯定是起来了,否则会报错某个节点不可连接(可以写个shell脚本判断一下服务状态验证)
2)从日志上看是否有错误提示,查看redis server日志并没有明显错误
3)搞清楚集群初始化做那些事儿,组成集群需要各个节点通信(集群总线端口)
4)从命令结果提示入手排除解决
[ERR] Node 10.162.62.45:6007 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
5)集群初始化的报错,就查看每个节点初始化的状态,如cluster nodes(cluster nodes |wc -l),写个简单的shell脚本统计每个节点的初始化状态
3、问题解决
如果存在上述部分节点初始化状态不一致,则关闭这些节点(必须要清空缓存节点node信息),删除dump.rdb和nodes.conf文件(避免从磁盘重新加载),再启动实例,然后重新组成集群
注意:并不是关闭集群中所有的实例,实际只用关闭加入集群的节点即可,不要浪费时间,每个节点是独立的master才是正常的
4、问题根因
redis server启动需要开启客户端通讯端口和集群总线端口(客户端通讯端口+10000),如果集群总线端口未起来,集群初始化的时候部分节点成功,部分节点失败了(通信部分失败)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!