客户端未注册到服务端
问题现象
订阅客户端列表中无数据。
问题原因
客户端未注册到服务端。
解决方案
确认客户端是否启动。
请先确认控制台配置的应用名称和执行器名字是否与客户端代码里写的一致,可以查看 endpoint 配置是否正确。
如果客户端已经启动,则检查
logs/scheduler
目录下的common-default.log
和common-error.log
错误日志。如果错误日志中都没有报错,则查看健康检查日志,确认健康检查是否通过。
单实例部署多个客户端,导致找不到连接
一个实例(ECS、虚拟机、Pod)不允许部署多个 AntScheduler 客户端,否则会出现连接互踢的问题。
AntVIP 地址配置错误
问题现象
出现 [AntVIPRouter] Get scheduler servers failed 报错。
问题原因
AntVIP 地址配置错误。
解决方案
检查客户端应用配置文件中的 AntVIP 地址。详情请参见 引入 SOFA 中间件。
任务调度客户端不在线
问题现象
任务调度控制台显示客户端不在线。
问题原因
客户端和服务端之间的 TCP 长连接建立失败。
解决方案
控制台显示客户端在线,就表示客户端和服务端成功建立了 TCP 长连接。建立 TCP 连接需要有两个因素:
客户端获取到服务端的 IP 和端口。
客户端与服务端地址之间的 网络 是互通的。
客户端会先从 AntVIP 获取服务端的信息(IP、端口),然后与其建立连接。建连成功后,控制台就会显示客户端在线。但如果 antvip、instanceId 这些配置信息错误,则会出现 endpoint might be wrong 错误。
任务删除失败
问题现象
出现 can not delete running job 报错。
问题原因
任务正在运行,无法删除。
解决方案
等待任务运行结束或手动暂停任务,然后删除。
版本编辑冲突问题
问题现象
出现 ${draft_version} is editing,can not create new version with ${base_version} 报错。
问题原因
基于同一个版本 ${base_version} 只能有一个编辑中的版本,如 ${draft_version},所以不能创建新的版本。
解决方案
通过以下任一方法发布一个新版本:
将编辑中的版本 ${draft_version} 发布后,再创建一个基于 ${base_version} 的新版本。
创建新版本时选择其它已发布版本作为基准版本。
调度记录的重试问题
问题现象
在任务的调度记录里,有的记录提供了 重试 按钮,可以重试,有的则不能。
问题原因
同一个任务,如果有多次执行记录,那么只有最新的执行记录是有重试选项的,因为旧的记录已经没有意义。
基于消息的任务中,业务应用未收到消息任务
排查思路
查看任务调度控制台任务配置的消息事件码是否与消息控制台配置的一致。
若消息时间码一致,查看消息控制台配置的消息任务的 Topic 是否为 TP_F_SC,否则修改为 TP_F_SC。
若 Topic 配置正确,查看任务调度服务端日志,是否将消息成功发送。
若任务调度已将消息成功发送,请参考消息队列的 SOFAMQ 常见问题 继续排查。
AntScheduler 健康检查 503
问题现象
在接口 curl 127.0.0.1:8080/health 进行健康检查,显示失败“DOWN”。
#curl 127.0.0.1:8080/health {"status":"DOWN"}
在另一个检查接口 curl 127.0.0.1:8080/health/readiness 进行健康检查,显示正常“UP"。
问题原因
接口错误。
解决方案
将 MS 版本升级到 2.34 及以上,版本提升后可直接将 /health 接口内部转发到 /actuator/readiness 接口。
接口 curl 127.0.0.1:8080/health/readiness 也可作为健康检查。