我们正在运行一个Flink 1.15.2集群,其作业具有Kafka Source和Kafka Sink。
源主题有30个分区。有5个TaskManager节点,容量为4个时隙,我们运行作业的并行性为16,因此是4个空闲时隙。因此,取决于插槽/节点分配,我们可以预期,每个节点大约分配6-7个分区。
我们的警报机制通知我们,消费者延迟是在30个分区中的一个分区上建立起来的。
由于Flink做了自己的偏移量管理,我们没有办法(通过Flink或Kafka控制台工具)找出分配分区的TaskManager。
我想知道是否有其他人在他们的经验中遇到过这种情况,以及今后如何积极地监测和(或)减轻这种情况。单个分区使用者线程是否有可能以这种方式运行?
我们决定一个接一个地弹跳Flink TaskManager服务,希望分区重新分配将再次开始消费。弹出第一个节点没有任何影响,但是当我们弹出第二个节点时,其他一些TaskManager会捡起滞后的分区并再次开始使用。
发布于 2022-11-07 07:23:45
可能和这个https://issues.apache.org/jira/browse/FLINK-28975有关?有关更多细节,请参见这里。
发布于 2022-11-01 08:09:06
我怀疑这是正确的解释,但也许水印对齐可以解释这种行为。
https://stackoverflow.com/questions/74272277
复制相似问题