高可用环境中的消息排序

prdp8dxp  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(158)

我们正在构建一个高度可用的环境,用于接收金融交易记录,并将其与我们的系统进行在线集成。我们当前的架构是将kafka生产者作为这些消息的接收端,并将它们推入kafka分区。kafka分区按客户设置密钥。
消息排序只对每个客户重要。不同的客户信息可能不正常,不会造成任何伤害。但是如果a和b是来自同一个客户的两条消息,如果a发生在b之前,那么我必须确定a是由kafka的消费者在b之前处理的。
在我们目前的方法中,我们计划有多个生产者来接收这些消息。假设p1和p2。即使p1在p2接收到b之前接收到消息a,p2也可能在p1之前将b写入kafka。
我能想到的唯一解决办法是,每个客户有一个生产商似乎可以解决这个问题。但这是对负载平衡和高可用性的冲击。此外,还出现了将消息路由到每个客户的生产者的问题。
我的问题是,有什么策略可以确保如果客户在b之前发送a,那么a在b之前写入kafka分区?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题