RabbitMQ 与应用程序解耦

RabbitMQ and Application Decoupling

我需要设置 RabbitMQ 以尝试使用异步消息重新设计我们的架构。

现有应用流程:

这些都是同步的,很耗时,我们需要将其转换为异步消息通信。

现在,我计划将其分解为以下不同的组件,但不确定这是否适用于 RabbitMQ:

应用细分:

这样,输出将在数据库中可用,异步流程将完成。

  1. 是否可以通过这种方式分离与 RabbitMQ 兼容的应用程序?
  2. 有没有更好的方法来做到这一点?
  3. 请推荐一些适用于 RabbitMQ 和 Perl 的框架组件

感谢您对此的投入。

是的,你可以这样做。如果这不是一项艰巨的工作,我将在 Perl 步骤中包括数据库负载。这可能会避免处理中间文件,但我不知道这在您的项目中是否可行。

为了使用 RabbitMQ,我会向您推荐 AnyEvent::RabbitMQ CPAN 模块。如文档所述,您可以使用 AnyEvent::RabbitMQ 来:

  • 声明和删除交易所
  • 声明、删除、绑定和解除绑定队列
  • 设置QoS和确认模式
  • 发布、使用、获取、确认、恢复和拒绝消息
  • Select,提交和回滚事务