1秒内没有关于kinesis流暂停消息的记录

时间:2019-04-16 13:49:52

标签: spring-cloud-stream amazon-kinesis spring-cloud-aws spring-integration-aws

我正在使用Spring Kinesis活页夹以批处理方式使用消息

有时我无法使用流中的消息。并非一直如此

[ShardConsumer {shardOffset = KinesisShardOffset {iteratorType = AFTER_SEQUENCE_NUMBER,sequenceNumber ='49594358705006691330463332232285735104253344344290967650306”, ,state = CONSUME}]放在sequenceNumber [null]上。暂停消耗[1000]毫秒。

我一直收到此消息,消息没有被使用。

我的Conf如下所示

 spring:
  cloud:
    stream:
      bindings:
        input:
          group: mygroup
          destination: mystream-1
          content-type: application/json
        output:
          destination: mystream-2
          content-type: application/json
      kinesis:        
        bindings:
          input:
            consumer:
              listenerMode: batch
              idleBetweenPolls: 60000
              consumer-backoff: 1000
        binder:
          headers: x-item_id,x-message_type
          locks:
            table: lTLocks
            leaseDuration: 30
            refreshPeriod: 3000
          checkpoint:
            table: lTCheckPoints

有消息在流中,但我不是断断续续地消费。你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

我认为您的Kinesis流中的检查点存储和碎片包含不同的序列号。

请先考虑使用清理lTCheckPoints表,然后再开始从流中使用它。

我并不是说您需要一直这样做,但至少是出于干净的测试环境。