当前位置: 首页 > 知识库问答 >
问题:

如果我将pollTimeout设置为1000ms,Kafka Consumer中有多少消息来

齐宗清
2023-03-14

用Spring Batch实现Kafka。开发了Spring Boot应用程序,我的Kafka生产者正在不断生产消息。我想批量处理这些消息。但是当我触发作业时,作业正在持续运行。所以我决定在KafKaiteReader中添加pollTimeout。这样我就可以停止我的工作了。但是在触发这项工作的时候,Kafka会收到多少信息。如果我将pollTimeout设置为1000ms,我无法在google中找到在KafkaitemReader中会有多少消息。

提示会很有帮助

@bean kafkaitemreader item(){return new kafkaitembuilder ().partitions(0).consumerproperties(prop).name(“reader”).savedata(true).topic(name).polltimeout(duration.ofmillis(1000).build()}

共有1个答案

唐海阳
2023-03-14

批处理是关于固定数据集的。如果您的主题是一个连续的事件流,那么Spring批处理作业对您来说不是一个好的选择,流式解决方案更合适。Spring Batch希望您的ItemReader在数据源耗尽时返回null,但在您的情况下,数据源从未耗尽,这就是您的作业从未完成的原因。

如果在此期间没有收到消息,timeout属性实际上会使读取器返回null

 类似资料: