代码之家  ›  专栏  ›  技术社区  ›  Edward Dale

利用ActiveMQ/Stomp实现PHP与Java的通信

  •  3
  • Edward Dale  · 技术社区  · 15 年前

    我有两个服务需要通过消息队列相互通信。一个是用PHP编写的遗留服务,另一个是用Java编写的。PHP服务迟早会用Java重写。它们之间当前的通信方式是写入共享数据库,由其他服务轮询。这就是我试图摆脱的,并用消息队列代替它。

    我现在正在处理的通信是从PHP服务到Java服务的通信。它需要发送一个相对复杂的对象(字符串和整数以及字符串和整数的列表和映射)。理想情况下,这个解决方案在PHP中是可行的,在Java中是理想的,因为这将是这个项目的遗留问题。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Hank Jesus M C    9 年前

    我提出的解决方案是使用 jms-json-object 转变。这些消息是精心编制的JSON,因此当它们在Java中使用 readObject ,可以使用 XStream . 这种重建发生在 ActiveMQ aliases converters 都准备好了。当我们最终用Java替换PHP组件时,发送消息只需使用 writeObject .

        2
  •  0
  •   ZZ Coder    15 年前

    PHP有一个STOMP客户端,

    http://pecl.php.net/package/stomp

        3
  •  -2
  •   ilya b.    15 年前

    在我看来,您应该使组件交互不受特定实现的影响。ActiveMQ有缺陷,许多系统为了支持RabbitMQ或sunopenmq而删除了它。您必须避免在PHP中编写“send message”例程,而是创建“SendMessage”servlet,并使用curl发布JSON编码的消息。然后servlet将使用连接工厂等,只需一点开销,您就可以从任何mq服务器特定的代码中释放PHP组件。你可以使用TextMessage和JSON的加载,编码和解码它容易与杰克逊。

    推荐文章