Kafka KSQLDB 服务器不断记录 "found no committed offset for partition"

Kafka KSQLDB server logs constantly "found no committed offset for partition"

I 运行 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;

我的问题是 KSQLDB 服务器现在不断记录此信息消息:
"found no committed offset for partition _confluent-ksql-ksql-01query_CSAS_PAGEVIEWS_ENRICHED_0-Join-repartition-0"。

它以每秒大约 10 次的速度向日志中发送此消息。 对应题目为空

这是什么意思,我该如何解决?

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

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

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

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

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

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

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

这可能是因为您的消费者群体是 unstable,这导致不断重新平衡,因此导致这些日志消息。即便如此,我也不希望每秒有 10 条日志行,除非有很多活动查询或大量主题分区。

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

网络上有大量关于 unstable 消费者群体的原因和修复的信息。