微服务和顺序处理接收到的消息

问题描述 投票:0回答:1

我有一个带有N个实例的微服务系统,我的业务基于OrderId的唯一值。对于每个OrderId,我得到4条消息,第一条消息要花很长时间进行处理,在处理第一条消息的过程中,我得到第二条消息和其他消息。我想强制系统按顺序处理它们。您对此情况有何想法?

我在这种情况下的想法包含共享内存技术(缓存服务器)和hangfire(使用BackgroundJob.ContinueWith),但是我正在寻找最佳实践。

c# .net-core microservices message-queue hangfire
1个回答
0
投票

在诸如Kafka之类的标准消息传递解决方案中,您可以使用orderId作为分区键。这将确保所有具有相同orderId的消息将始终按照它们产生的顺序最终位于同一分区中。不同的订单将进入不同的分区。

© www.soinside.com 2019 - 2024. All rights reserved.