【发布时间】:2012-08-16 21:12:22
【问题描述】:
我正在构建一个系统,它使用 RabbitMQ 作为其组件的消息传递解决方案。但是,我有一些遗留的 EJB Java 代码,它们在 GlassFish 应用服务器上作为 EJB 执行磁盘 IO 密集型任务。我不想重写那个代码,所以我想找到一种与之通信的方法。我知道我可以只使用 RabbitMQ java 客户端,但我不确定如何处理消息限制,我不希望同时运行 4 个任务,这对于消息驱动来说相对容易GlassFish 中的豆子。
我想出的唯一方法是一个单例 EJB,它在 PostConstruct 中启动一个计时器,并在该计时器进入阻塞 AMQP 客户端接收循环时。然后我可能只是将收到的 AMQP 消息复制到本地 GlassFish JMS 提供程序并使用 MDB 轮询它们,但我不喜欢这样,因为我必须监视多个 GlassFish JMS 提供程序以了解事情的进展,而不是仅仅检查RabbitMQ。
我正在努力寻找有关如何互连 AMQP 和 JMS 的任何信息,以前有没有人做过类似的事情?任何想法表示赞赏。
【问题讨论】: