我需要设置 RabbitMQ 以尝试使用异步消息重新设计我们的架构。
现有申请流程:
- JEE Web 应用程序(通过浏览器)创建一个新线程。
- 这个线程创建一个新的操作系统进程来调用一个 Perl 脚本来做一些处理。
- Perl 脚本将其输出写入文件,然后控制权返回给线程。
- 然后线程读取输出文件并将结果加载到数据库中。
- 控件传递给 servlet,该 servlet 将结果显示给 UI。
所有这些都是同步且耗时的,我们需要将其转换为异步消息通信。
现在,我打算将其分解为以下不同的组件,但不确定这是否适用于 RabbitMQ:
应用细分:
- JEE Web 应用程序,它是 RabbitMQ 的生产者
- 将 Perl 脚本分离到它自己的支持 RabbitMQ 通信的应用程序中。此 Perl 客户端将使用该消息,对其进行处理并将新消息放入 RabbitMQ 以进行下一步
- 将数据库加载器的输出文件分离到它自己的支持 RabbitMQ 通信的 Java 应用程序中。这将使用与上一步中 Perl 客户端消息相对应的队列中的消息。
这样,输出将在数据库中可用,并且异步流程将完成。
- 是否可以以这种与 RabbitMQ 兼容的方式分离应用程序?
- 有没有更好的方法来做到这一点?
- 请为 RabbitMQ 和 Perl 推荐一些框架组件
感谢您对此的投入。