从ActiveMQ触发PHP

Edw*_*ale 6 php java activemq-classic stomp message-queue

背景: 我们当前的系统涉及两个服务(一个用Java编写,另一个用PHP编写),它们使用HTTP回调相互通信.我们希望使用ActiveMQ(或其他,如果需要)从HTTP回调迁移到基于消息的体系结构.我们可能会使用STOMP在它们之间进行通信.最终,PHP服务将用Java重写,但这不是该项目的一部分.

问题: ActiveMQ系统如何通知PHP已将新消息发布到PHP系统订阅的队列?在当前系统中,回调固有地调用PHP并触发它.这消失了基于消息的架构.

可能的解决方案:

  • Cron定期调用一个检查新消息的PHP脚本.呸.
  • 一个长期运行的PHP进程,它循环并休眠并检查新消息.少呀?
  • 发布新消息时,ActiveMQ调用PHP脚本.好,怎么样?
  • ??

Gle*_*oss 4

看看骆驼。它可以在 ActiveMQ 中运行或单独运行。Camel 为消息创建“路由”。在这种情况下,我建议您保留 PHP 回调 URL 不变,并在 Camel 中设置一条路由,从队列中获取消息并将它们发布到回调 URL。然后您可以在 PHP 中使用 Stomp 向 ActiveMQ 发送消息。您的 Java 代码只能将 JMS 用于传入和传出消息。