如何在所有参与者之间分配顺序?

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

有一个具有三个业务参与者的系统:

  1. 表演
  2. 客户(移动设备,Web界面)
  3. 订单

当客户创建订单时,应在所有现有执行者之间分配订单,然后系统必须决定哪个执行者将获得订单。同时,如果其他人接受了,则其他一些人也无法获得此命令。

哪种架构方法和要使用的工具,协议?

这是正确的说法,如果我拥有分布式业务模型,这意味着我必须使用Rabbit,Kafka等分布式系统?

我知道这个问题是如此广泛,但是无论如何我都会很高兴得到任何建议。

apache-kafka architecture rabbitmq message-queue distributed-system
1个回答
0
投票

出于您的目的,您可以使用某些消息传递系统,该系统支持point-to-point model(队列语义),而不是publisher-subscriber model(主题语义)。因此,基本上,某些customer服务会将order发布到队列,而单个performer将接收并处理它。

关于实现,您可以使用Kafka或RabbitMQ,也可以使用任何其他消息传递系统,因为当今大多数系统都支持点对点。

例如,使用Kafka,您可以通过使orders Kafka为主题,并将所有performers放在单个消费者组中来实现点对点。这样,当order出现时,Kafka将在同一使用者组中的performers中对它进行负载均衡,因此只有一个performer会接收和处理它。

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