我正在尝试实现一个解决方案来创建一个由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-商店
1条答案
按热度按时间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
限制获取的记录数。