tbschedule icon indicating copy to clipboard operation
tbschedule copied to clipboard

偶尔出现 KeeperErrorCode = ConnectionLoss

Open wsqhubapp opened this issue 5 years ago • 12 comments

schedule 运行2、3天会出现,如下大批量的报错,zookeeper free 只有100多M,不知道是什么情况,请教大佬! [2019-07-01 16:36:03,609] [syncErpOrderNonRealTime_14090001-271-HeartBeat] (ZooKeeper.java:684) INFO org.apache.zookeeper.ZooKeeper - Session: 0x16b9bb69d5f06b9 closed [2019-07-01 16:36:03,609] [syncErpOrderNonRealTime_14090001-271-HeartBeat] (ZooKeeper.java:438) INFO org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=10.8.1.248:2181 sessionTimeout=60000 watcher=com.taobao.pamirs.schedule.zk.ZKManager$1@6c315b5 [2019-07-01 16:36:03,612] [syncErpOrderNonRealTime_14090001-271-HeartBeat-EventThread] (ZKManager.java:77) INFO com.taobao.pamirs.schedule.zk.ZKManager - 收到ZK连接成功事件! [2019-07-01 16:36:03,613] [syncErpOrderNonRealTime_14090001-271-HeartBeat] (TBScheduleManager.java:413) ERROR com.taobao.pamirs.schedule.taskmanager.HeartBeatTimerTask - KeeperErrorCode = Connect ionLoss for /schedule/erp98/baseTaskType/syncErpOrderNonRealTime_14090001/syncErpOrderNonRealTime_14090001/server/syncErpOrderNonRealTime_14090001$$57DB65427E4E4DA2A409EF31D46CCABA$0000000000 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /schedule/erp98/baseTaskType/syncErpOrderNonRealTime_14090001/syncErpOrderNonRealTime_14090001/s erver/syncErpOrderNonRealTime_14090001$$57DB65427E4E4DA2A409EF31D46CCABA$0000000000 at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1270) at com.taobao.pamirs.schedule.zk.ScheduleDataManager4ZK.refreshScheduleServer(ScheduleDataManager4ZK.java:747) at com.taobao.pamirs.schedule.taskmanager.TBScheduleManager.rewriteScheduleInfo(TBScheduleManager.java:195) at com.taobao.pamirs.schedule.taskmanager.TBScheduleManagerStatic.rewriteScheduleInfo(TBScheduleManagerStatic.java:11) at com.taobao.pamirs.schedule.taskmanager.TBScheduleManagerStatic.refreshScheduleServerInfo(TBScheduleManagerStatic.java:103) at com.taobao.pamirs.schedule.taskmanager.HeartBeatTimerTask.run(TBScheduleManager.java:411) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462)

wsqhubapp avatar Jul 01 '19 09:07 wsqhubapp

结合日志和你的描述,猜测是zk和应用之间的网络闪断了,在恢复连接后,tb这边报错了。请问打印该异常信息后,能恢复调度吗?

nmyphp avatar Jul 02 '19 07:07 nmyphp

调度不能自动恢复,我们是把调度重启之后,调度恢复的。从监控上看,出现问题的时候,网络速度是最高的达到了,25Mbps。请问有上面推荐的监控服务器之间的闪断的情况的方法 image

wsqhubapp avatar Jul 02 '19 09:07 wsqhubapp

可以写个脚本放到tb应用的机器上,crontab定时去telnet zk的2181端口,统计每次的结果。以上思路仅供参考。

即使是网络闪断导致的,那不能恢复,也是有问题的,请有兴趣的同学,fix一下,我这边抽空也看看。

nmyphp avatar Jul 03 '19 02:07 nmyphp

多谢!

wsqhubapp avatar Jul 04 '19 01:07 wsqhubapp

请确认一下zk集群用的zk版本,和你的应用里面依赖的zk客户端zookeeper.jar版本是否一致?

nmyphp avatar Jul 04 '19 07:07 nmyphp

版本调整后,问题解决了没?

nmyphp avatar Jul 14 '19 14:07 nmyphp

版本调整没有得到领导的认可,我们从单点变为了集群,但是出现这个问题的频率变为3星期2次。如果调整版本 tbschedule 的lib 目录下有zkclient-0.1.jar zookeeper-3.4.6.jar 这两个都要调整吗? 具体详情发到了您的qq上

wsqhubapp avatar Jul 19 '19 07:07 wsqhubapp

调整zookeeper-xxx.jar的版本至一致就行了,怀疑是zk版本之间兼容性不太好,所以先确保zk和tb中用的zookeeper-xxx.jar版本一致,再观察情况@wsqhubapp

nmyphp avatar Jul 25 '19 07:07 nmyphp

我们更换了jar,zookeeper 服务器端是3.4.10。 tbschedule端从3.4.6 升级到3.4.10,重启tbschedule后报错。如图所示 image

wsqhubapp avatar Aug 02 '19 00:08 wsqhubapp

我们也在生产环境中遇到定时任务执行一段时间后,停止调度的问题。但是心跳是一直在刷新的。看日志,也是存在网络闪断的情况。 恳请专家帮助解决或提供思路。多谢!

wangshengwangsheng avatar Aug 12 '19 11:08 wangshengwangsheng

我们也在生产环境中遇到定时任务执行一段时间后,停止调度的问题。但是心跳是一直在刷新的。看日志,也是存在网络闪断的情况。 恳请专家帮助解决或提供思路。多谢! 不是停止调度。是暂停调度。既然是定时任务。是每个周期都会执行。 心跳检测是调度器发出的。真正跑你任务的是调度器下面的线程。定时任务到点了暂停执行销毁的是线程。但调度器还是会在的。它在就会更新心跳。这没有什么问题。因为你的是定时任务。不会去销毁调度器。这对你的业务有什么影响?

18818018912 avatar May 20 '20 02:05 18818018912

tbschedule源码分析 http://java52.com/kcdetail.html?course=2

18818018912 avatar Mar 12 '21 14:03 18818018912