Kafka KSQLDB 服务器不断记录“发现分区没有提交的偏移量”

Gar*_*ryW 4 apache-kafka ksqldb

我在无头模式下运行 Kafka 和 KSQLDB 服务器。在 KSQLDB 服务器上,我只部署了几个查询来进行试验:

CREATE STREAM pageviews_original (viewtime bigint, userid varchar, pageid varchar) WITH (kafka_topic='pageviews-ksql', PARTITIONS=1, REPLICAS=3, value_format='DELIMITED');

CREATE TABLE users_original (registertime BIGINT, gender VARCHAR, regionid VARCHAR, userid VARCHAR) WITH (kafka_topic='users-ksql', PARTITIONS=1, REPLICAS=3, value_format='JSON', key = 'userid');

CREATE STREAM pageviews_enriched AS SELECT users_original.userid AS userid, pageid, regionid, gender FROM pageviews_original LEFT JOIN users_original ON pageviews_original.userid = users_original.userid;
Run Code Online (Sandbox Code Playgroud)

我的问题是,KSQLDB 服务器现在不断记录此 INFO 消息:
“发现分区 _confluence-ksql-ksql-01query_CSAS_PAGEVIEWS_ENRICHED_0-Join-repartition-0 没有提交的偏移量”。

它每秒向日志发送大约 10 次此消息。对应的主题为空。

这是什么意思以及如何解决它?

And*_*tes 15

当流线程(执行流处理的线程)被分配主题分区以开始处理时,会输出日志消息。在开始处理之前,它首先检查是否有任何已提交的偏移量,以便它可以从前一个线程完成的位置开始处理。

创建流或表时出现此类日志行是正常的,因为之前没有任何线程处理该分区,因此没有提交偏移量。

如果尚未通过分区处理任何数据,您还可能在重新启动服务器时或在消费者组重新平衡期间(更多内容见下文)看到此类日志行。

在之前处理过数据的地方,您可能会看到类似的日志行,但包括最后处理的偏移量的详细信息。

不正常的是一直看到他们!这表明出了问题。

最可能的原因是消费者群体的重新平衡。

消费者组负责将负载分散到所有可用的流处理线程和所有集群的 ksqlDB 服务器上。当从集群中添加或删除服务器时,组会重新平衡,以确保所有主题分区都得到处理,并且工作在所有实例中均匀分布。有可配置的超时用于检测死亡消费者。

您的消费者组可能不稳定,这会导致不断的重新平衡,从而导致这些日志消息。即使如此,我也不期望每秒有 10 行日志行,除非有许多活动查询或大量主题分区。

如果正在进行消费者组重新平衡,那么您应该在日志中看到这一点,尽管您可能需要调整日志记录级别才能看到它们。

网络上有大量关于不稳定消费群体的原因和解决方法的信息。

  • 重新启动服务器后,该消息最终消失。但你的回答是最接近理解发生的事情的。谢谢。 (3认同)