如何在所有参与者之间分配订单?

w80xi6nr  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(282)

系统有三个业务参与者:
表演者
客户(移动设备、web界面)
订单
当客户创建订单时,它应该在所有现有执行者之间分发,然后系统必须决定哪个执行者将获得订单。同时,其他一些人也不能得到这个订单,如果一个接受了。
使用哪种体系结构方法和工具、协议?
如果我有分布式业务模型,那就意味着我必须使用像rabbit、kafka这样的分布式系统,这种说法对吗?
我知道这个问题是如此广泛,但无论如何,我会很高兴得到任何建议和建议。

idfiyjo8

idfiyjo81#

我建议看一下cadence的工作流程。它的编程模型大大简化了此类服务编排用例的实现。
消息传递系统不适合于超出简单流式传输或通知场景的服务编排。

toe95027

toe950272#

通常,消息传递模型有两种类型:点到点模型(队列语义)和发布者-订阅者模型(主题语义)。从您的问题来看,您似乎需要实现点对点模型。所以,基本上,一些 customer 服务将发布 order 排队和单身 performer 将接收并处理它。这边派车 orders 介于 performers 由消息传递系统自动处理。
关于具体的消息传递系统-您可以使用kafka或rabbitmq,或者任何其他消息传递代理,因为现在大多数代理都支持点对点。
例如,有了Kafka,你可以通过 orders Kafka的主题,以及 performers 在单一消费群体中。这条路什么时候 order 来了,它将由Kafka负载均衡 performers 在同一个消费群体,所以只有一个 performer 将接收并处理它。

相关问题