使用大众交通活动或消费者

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

我正在构建一个服务,该服务将充当不可靠的外部 API 前面的抽象层。抽象层将提供弹性,确保命令最终能够在发生中断时恢复。稍后,它将为查询提供缓存。

我们在新服务中使用 MassTransit 来协调对外部 API 的调用。 MT还提供重试、断路器、节流等功能

我想要一些关于何时在 StateMachine 中使用 MassTransit 的“活动”和“消费者”的建议。我想考虑三种情况:

  1. 从状态机内的外部 API 请求资源。我们需要处理成功、失败、超时。在这里使用请求响应消费者似乎是显而易见的。

  2. 从状态机内向外部 API 发送命令。我们需要处理成功、失败、重试。我们还需要重试、节流、终止开关来处理中断。活动是更好的选择吗?

  3. 从一个状态机发送命令以与另一个状态机交互。我们需要处理成功、失败、重试。由不同状态机处理的命令在这里合适吗?

谢谢指教

我目前有消费者和活动的混合体。两种方法都效果很好。然而,目前我只使用内存;我还没考虑过并发。

因此,虽然我尝试过的方法在快乐路径情况下效果很好,但我更感兴趣的是在考虑并发性时了解每种方法的好处,以及在较小程度上,什么是语义上更正确的方法。

注意,第三方不提供 DELETE 端点,因此目前在发生错误时没有补偿操作。

masstransit
1个回答
0
投票
  1. 消费者
  2. 消费者
  3. 活动,或酌情使用
    Publish
    /
    Send

在案例 3 中,您可以 了解 MassTransit 如何使用多个状态机来提供作业服务以及它们如何协作。

消费者应该用于 1 和 2,因为它们的执行时间是不确定的,并且 sagas 通常在数据库事务中执行。

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