我正在尝试使用 Amazon 的 Kinesis 按顺序发送 1000 条消息,但 kinesis 消费者收到的消息不是按顺序发送的。我尝试过的事情:
- 使用SequenceNumberForOrdering
putRecord()
发送的方法。以此实现有序序列,但吞吐量非常低。 - 使用
putRecords
方法发送但不成功。 - 使用 KCL + Amazon 的 API 消费者。
我正在尝试使用 Amazon 的 Kinesis 按顺序发送 1000 条消息,但 kinesis 消费者收到的消息不是按顺序发送的。我尝试过的事情:
putRecord()
发送的方法。以此实现有序序列,但吞吐量非常低。putRecords
方法发送但不成功。Kinesis 维护分片内的序列,而不是跨流中的所有分片。我猜你的流中有超过 1 个分片,因此观察到的读取记录乱序。(您也可以通过在流中仅使用 1 个分片重复 #2 来快速验证这一点。)
从这里引用:
请注意,记录序列号 (RSN) 不会在流中全局跟踪,而是仅跟踪每个分片。