kafka ksqldb服务器日志经常“找不到分区的提交偏移量”

e4eetjau  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(510)

我在无头模式下运行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服务器现在不断地记录这个信息消息:
“找不到分区的提交偏移量\u confluent-ksql-ksql-01query \u csas \u pageviews \u enriched \u 0-join-repartition-0”。
它以每秒10次的速度向日志发送垃圾邮件。相应的主题为空。
这意味着什么?我该如何解决?

vcirk6k6

vcirk6k61#

当一个streams线程(执行流处理的线程)被分配一个主题分区来开始处理时,就会输出日志消息。在开始处理之前,它首先检查是否有任何提交的偏移量,以便可以从上一个线程完成的位置开始处理。
在创建流或表时,这样的日志行是正常的,因为之前没有任何线程处理分区,所以没有提交偏移量。
在重新启动服务器时,或者在消费者组重新平衡期间(下面将对此进行详细介绍),如果尚未通过分区处理任何数据,也可能会看到这样的日志行。
在以前处理过数据的地方,您可能会看到类似的日志行,但包括上次处理的偏移量的详细信息。
什么是不正常的是看到他们所有的时间!这说明出了问题。
最可能的原因是消费群体的再平衡。
使用者组处理跨所有可用流处理线程、跨所有集群ksqldb服务器的负载分布。当从集群中添加或删除服务器时,组将重新平衡,以确保所有主题分区都得到处理,并且工作均匀地分布在所有示例中。有可配置的超时用于检测死亡的消费者。
这可能是因为你的消费者群体不稳定,这导致不断的重新平衡,因此这些日志消息。即使这样,我也不会期望每秒有10行日志,除非有许多活动查询或大量的主题分区。
如果消费者群体正在重新平衡,那么您应该在日志中看到这一点,尽管您可能需要调整日志级别才能看到它们。
网上有大量关于不稳定消费群体的原因和解决办法的信息。

相关问题