我们将收到处理属于以下任何组的项目的请求-
我们收到3个有关A1,B1,C1的请求。 由于所有请求都属于同一组,因此应按顺序处理 (当前请求必须先完成,然后才能提取下一个请求进行处理)
我们收到4个有关A1,A2,B2,B3的请求
这里的请求A2和B2属于同一组,因此应按场景1所述顺序处理它们
并且请求A1和B3属于不同的组,因此应该并行处理
因此,基本上,应并行处理来自不同组的请求。 并且来自同一组的请求应按顺序处理。
我们计划如下使用Apache Kafka或activemq做到这一点
注意:给定的应用程序可以是运行多个实例的分布式微服务应用程序。
答案 0 :(得分:0)
我不知道ActiveMQ,但是您所描述的基本上是Kafka的工作方式。分区中所有产生的事件都是有序的,并按照该顺序进行处理,并且在使用者组中,每个分区只能有一个使用者
您唯一需要实现的部分是Partitioner
接口,以确保您的组到分区逻辑。否则,默认分区程序将无法保证X1和Y2会成为同一分区的一部分