使用者在Windows 7,Java 8上运行。

消费者在1-5秒内阅读了1次按摩。我的设置有什么问题?

消费者:

@EnableBinding({Sink.class})
@SpringBootApplication
public class SpringCloudStreamKinesisConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudStreamKinesisConsumerApplication.class, args);
    }

    @StreamListener(Sink.INPUT)
    public void logger(String payload) {
        System.out.println("consumer received: " + payload);
    }
}


消费者application.yml:

spring:
  cloud:
    stream:
      bindings:
        input:
          destination: test_stream
          content-type: application/json
          consumer:
            idleBetweenPolls: 250


消费者项目是同一项目中的一个模块,该模块继承以下pom:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-kinesis</artifactId>
    <version>1.0.0.M1</version>
</dependency>




Kinesis联编程序忽略以下设置:

java -  Spring Kinesis消费者太慢-LMLPHP

我在调试时手动更改了此参数,但使用者在10秒内收到了1-2个元素。问题是什么?

最佳答案

@Stav Alfi,那确实是个问题。

在为KinesisMessageChannelBinder注入修复KinesisExtendedBindingProperties之后,我看到了正确的属性填充。

因此,配置应如下所示:

spring:
  cloud:
    stream:
      kinesis:
        bindings:
          input:
            consumer:
              idleBetweenPolls: 250


我将尽快解决该问题。希望我们今天发布M2。

感谢您的耐心等待!

关于缓慢的消费速度:不要忘记将消息发送到Kinesis流的速度,还要牢记生产者和消费者之间确实存在一些延迟。换句话说,AWS Kinesis在合理的延迟时间内无法使用记录。

有关更多信息,请参见AWS FAQ


  您可以将数十种来源的各种类型的数据(例如点击流,应用程序日志和社交媒体)连续添加到Amazon Kinesis数据流。在几秒钟内,数据将可供您的Amazon Kinesis应用程序读取并从流中进行处理。

10-07 19:30
查看更多