springxd和spring集成:每x分钟阅读一次kafka主题,然后发送到另一个主题

wf82jlnq  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(284)

我正在尝试实现一个解决方案来创建一个由kafka源、桥模块和kafka接收器组成的springxd流。
所以我有这样的想法:

<channel id="pollable">
    <queue />
</channel>

<bridge input-channel="pollable" output-channel="executorChannel">
    <poller max-messages-per-poll="5" fixed-rate="5000" />
</bridge>

我的问题是,我想以某种方式避免投票。基本上是因为我想避免在消息在队列中时将消息保留在内存中。我更喜欢每x分钟读一次Kafka的文章,从队列中取出y条信息,然后把这些信息发送到下一个主题。
看起来我无法摆脱队列,但我的问题是:还有其他选择吗?我不想把东西留在记忆中,但我也不想使用这个选项:http://docs.spring.io/spring-integration/reference/html/system-management-chapter.html#message-商店

omhiaaxx

omhiaaxx1#

将数据保存在内存中不是一个好主意。
你可以 stop() 以及 start() 通道适配器( KafkaMessageDrivenChannelAdapter )根据需要;当它重新启动时,它会从停止的地方恢复。
但是,kafka源代码使用了非常旧的spring集成kafka版本(1.3.x)。
如果创建自定义源以使用spring integration kafka 2.1.0(它使用kafka 0.10.1.x客户端),则可以设置kafka属性 max.poll.records 限制获取的记录数。

相关问题