繁体   English   中英

SpringXD和Spring集成:每隔X分钟从kafka主题读取一次,然后发送给另一个主题

[英]SpringXD and Spring Integration: Read from kafka topic every X minutes, then send to another Topic

我正在尝试实现一种解决方案,以创建由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 -商店

将数据保存在内存中并不是一个好主意。

您可以根据需要stop()start()通道适配器( KafkaMessageDrivenChannelAdapter )。 重新启动时,它将从中断处继续取回。

但是,kafka源代码使用的是spring-integration-kafka(1.3.x)的非常旧的版本。

如果您创建自定义源以使用spring-integration-kafka 2.1.0(使用kafka 0.10.1.x客户端),则可以设置kafka属性max.poll.records来限制获取的记录数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM