使用 apache kafka 或 activemq 哪个更好?

what will be better to use apache kafka or activemq?

问题陈述:

我们将收到处理属于以下任何组的项目的请求 -

  1. Grp1 -> A1,B1,C1,D1,E1
  2. Grp2 -> A2,B2,C2,D2,E2
  3. Grp3 -> A3,B3,C3,D3,E3

场景 1:

我们收到了 A1、B1、C1 的 3 个请求。 由于所有请求都属于同一组,因此应按顺序处理 (当前请求应该在下一个请求被处理之前完成)

场景 2:

我们收到了 A1、A2、B2、B3 的 4 个请求
此处请求 A2 和 B2 属于同一组,因此应按场景 1 中所述顺序处理它们 并且请求 A1 和 B3 应该并行处理,因为它们属于不同的组

所以基本上来自不同组的请求应该并行处理。 同组请求按顺序处理

当前方法:

我们计划使用 Apache Kafka 或 activemq 执行此操作,如下所示-

问题:

  1. Apache Kafka 或 activemq 哪个最适合要求?
  2. 还有其他更好的方法来解决同样的问题吗?

注意:给定的应用程序可以是具有多个实例的分布式微服务应用程序运行。

我不知道ActiveMQ,但你描述的基本上是Kafka的工作原理。一个分区中所有产生的事件都按顺序排序和处理,在一个消费者组中,每个分区只能有一个消费者

您唯一需要实现的部分是 Partitioner 接口,以保证您的组分区逻辑。否则,默认分区程序将无法保证 X1 和 Y2 最终成为同一分区的一部分