分布式集群环境中数据库访问超时的一个可能原因

最最基础简单的一个问题,由于之前没注意到,困扰好久,记下来警醒自己!!
分布式集群环境下一定要注意在集群中统一各个节点的时间!!!!!
如果各个节点间时间不统一,后续可能出现数据库访问超时等问题。
先把简单步骤放上:

# 安装ntp
sudo yum install ntp -y

# 与指定服务器同步时间
sudo ntpdate 0.asia.pool.ntp.org

# 最后执行如下命令将系统时间同步到硬件,防止系统重启后时间被还原。
sudo hwclock --systohc

详细记录下一下我出现的问题
多节点部署了Crawlab爬虫管理平台,开始多个节点是能正常使用的,后来由于关过服务器等原因,发现几个工作节点正常启动后,一直显示“warn Get current node info from database failed. Will after 1.000000 seconds, try again. error=not found”

mongo中始终沒有节点信息
image-20220311135619336

现redis中关于该节点的信息时有时无,mongo的nodes表中则无任何该节点的信息

后来根据redis的节点信息手动在mongo中写入后,节点的状态始终被刷新为offline,以至于该节点一直无法使用。

(个人考虑是由于节点间通信问题导致,但不知道具体问题在哪里)

分析原因:个人考虑是由于节点间通信问题导致,最终发现是由于集群的时间不统一,影响到redis接收的到节点心跳!!!巨坑!!!!!!!!!!!!!!!!!估计是因为服务器断电等原因,之前时间也没统一到硬件,才出现该问题。

具体参考:5中时间漂移问题

https://docs.crawlab.cn/zh/Installation/MultiNode.html

最终解决方式:
前提:关闭防火墙

# 安装ntp
sudo yum install ntp -y

# 与指定服务器同步时间
sudo ntpdate 0.asia.pool.ntp.org

# 最后执行如下命令将系统时间同步到硬件,防止系统重启后时间被还原。
sudo hwclock --systohc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值