我有一个 kafka 连接集群,有超过 500 个连接器(自定义)。有时,一部分任务会进入“未分配”状态(> 50)并停留在那里。在什么条件下会发生这种情况?有什么方法可以找出它为何保持未分配状态?
这是在 kafka connect 版本 2.4.1 上。我看到了这个连接器中的任务何时移动到未分配状态?但没有看到任何适用于此的原因
对于问题(2.4.1)中提到的 Kafka Connect 版本,可能是 KAFKA-9472。
在旧版本的 Kafka Connect 上,如果连接器的任务数量减少,则删除的任务将在 REST API 中显示为
UNASSIGNED
,而不是被删除。 2020 年 5 月合并了补丁,2.3.2、2.4.2、2.5.1 和 2.6.0(及更高版本)版本不应再出现此问题。
对于 Kafka 的更高版本(因为您在评论中提到升级到 3.2.x 后这种情况仍然存在),如果没有更多信息,很难确定。如果您有这些任务进入
UNASSIGNED
状态之前的日志文件可供共享,我们也许能够找出根本原因。一种可能性是集群中存在流失,并且计划的重新平衡延迟正在启动,但使用该属性的默认值,这应该会在五分钟后自动解决。