【问题标题】:Consume messages from Input stream at fixed intervals以固定的时间间隔从输入流中消费消息
【发布时间】:2018-03-13 08:55:29
【问题描述】:

我正在使用流侦听器来使用来自 amazon kinesis 流的消息。

@StreamListener(Processor.Input)
public void receiveMessage(String message) {
  //process    
}
  1. 是否可以实现一个侦听器,每 10 分钟从输入流中获取一次所有消息
  2. 当有消费者群体时,它将如何表现。消费者组中的所有容器是否都得到不同的消息列表。

我尝试使用@Poller,但它没有任何输入通道。

在这方面的任何帮助都会很棒。

【问题讨论】:

    标签: java spring-integration spring-cloud-stream spring-integration-aws


    【解决方案1】:

    AWS Kinesis 没有这样的轮询消费者实施。 但是你可以用这样的组合来模拟它:

    listenerMode = batch
    

    您将在@StreamListener 中以List<com.amazonaws.services.kinesis.model.Record> 的形式收到有效负载

    recordsLimit 默认为10000。我认为这应该足以进行尽可能多的投票。

    idleBetweenPolls = 600000 / 10 mins
    

    您不会在此选项之前进入下一个批次。

    不,组中的每个消费者都将获得自己的列表。但这不符合您对轮询所有内容的原始要求。因此,同一组中的所有其他消费者都将处于空闲状态 - 无需为他们轮询!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2018-03-06
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多