1
我试图使用Amazon的Kinesis按顺序发送1000条消息,但由kinesis消费者接收的消息不是按顺序排列的。 事情我已经尝试:使用亚马逊的Kinesis维护订单,每秒至少有1000条消息
- 用于
putRecord()
方法与SequenceNumberForOrdering发送。 已达成有序序列,但吞吐量非常低。 - 使用
putRecords
方法发送但不成功。 - 使用KCL +亚马逊的API消费者。
我试图使用Amazon的Kinesis按顺序发送1000条消息,但由kinesis消费者接收的消息不是按顺序排列的。 事情我已经尝试:使用亚马逊的Kinesis维护订单,每秒至少有1000条消息
putRecord()
方法与SequenceNumberForOrdering发送。 已达成有序序列,但吞吐量非常低。putRecords
方法发送但不成功。Kinesis在碎片中维护序列,而不是跨越流中的所有碎片。我猜测你的数据流中有超过1个分片,因此观察不按顺序读取记录。从here(您也可以迅速通过信息流中的重复#2只1分片验证这一点。)
报价:
请注意,记录序列号(匹配的RSN)不流在全球范围追踪而只是每个碎片跟踪。
是的,它只在碎片内维护序列。但是,如果您一次发送多条消息,则不会维持订单。由于延迟问题。 Kinesis只维护KinesisQueue中的消息顺序,但不是制作人发送它们的方式。 – superB
什么是KinesisQueue? –