【发布时间】:2019-09-21 01:39:26
【问题描述】:
问题陈述:
我们将收到处理属于以下任何组的项目的请求 -
- Grp1 -> A1,B1,C1,D1,E1
- Grp2 -> A2,B2,C2,D2,E2
- Grp3 -> A3,B3,C3,D3,E3
场景一:
我们收到 A1、B1、C1 的 3 个请求。 由于所有请求都属于同一组,因此应按顺序处理它们 (当前请求应在处理下一个请求之前完成)
场景 2:
我们收到 A1、A2、B2、B3 的 4 个请求
此处请求 A2 和 B2 属于同一组,因此应按场景 1 中所述顺序处理它们
并且请求 A1 和 B3 应该并行处理,因为它们属于不同的组
所以基本上应该并行处理来自不同组的请求。 来自同一组的请求应按顺序处理。
目前的做法:
我们计划用 Apache Kafka 或 activemq 来做这件事,如下-
- 创建主题
- 将主题划分为多个分区,每个分区分配一个 group ,所以分区数将等于组数
- 属于特定组的每个请求都将发送到分区 分配给该组。
- 每个分区都有一个专门的消费者来处理请求 仅来自该分区。
问题:
- 哪一个最适合 Apache Kafka 或 activemq 的需求?
- 还有其他更好的方法来解决同样的问题吗?
注意:给定的应用程序可以是运行多个实例的分布式微服务应用程序。
【问题讨论】:
-
注意:推荐问题被认为是 Stackoverflow 的题外话,请参阅 help center
标签: apache-kafka activemq