Kafka KSQLDB服务器不断记录“未找到分区的已提交偏移量”

时间:2020-05-20 16:24:27

标签: 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;

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

每秒用此消息向日志发送垃圾邮件大约10次。 相应的主题为空。

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

1 个答案:

答案 0 :(得分:0)

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

在创建流或表时,这种日志行很正常,因为以前没有任何线程在处理该分区,因此没有提交偏移量。

如果尚未通过分区处理任何数据,则在重新启动服务器时或在使用者组重新平衡期间(也将在下面进行更多说明),您也可能会看到这样的日志行。

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

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

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

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

您的消费群体可能不稳定,这会导致不断的重新平衡,因此会产生这些日志消息。即使那样,除非有许多活动查询或大量主题分区,否则我也不希望每秒有10条日志行。

如果正在进行消费者组重新平衡,则您应该在日志中看到此信息,尽管您可能需要调整日志级别以查看它们。

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