背景

我有两项需要通过消息队列进行交流的服务。一种是用PHP编写的旧服务,另一个是在Java中。较晚的PHP服务将在Java中重写。他们彼此交流的当前方式是将其写入共享数据库,而其他服务进行了调查。这是我试图摆脱并替换消息队列的方法。

问题

我现在正在进行的沟通是从PHP服务到Java服务。它需要发送一个相对复杂的对象(字符串,整数以及字符串和整数的列表以及地图)。理想情况下,该解决方案在PHP中是可行的,并且在Java中是理想的,因为这将是该项目的遗产。

可能的解决方案

    1.
有帮助吗?

解决方案

我想出的解决方案是使用PHP/Stomp的消息使用 jms-json-object 转型。这些邮件是专门制作的JSON readObject, ,它们可以使用 Xstream. 。这种重构发生在内部 Activemq 我只需要确保必要的 别名转换器 就位。当我们最终用Java替换PHP组件时,发送消息将只是使用 writeObject.

其他提示

有一个用于PHP的stomp客户

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

在我看来,您应该使组件交互免于特定的实现。 ActiveMQ是越野车,许多系统将其删除,以支持RabbitMQ或Sun OpenMQ。您必须避免在PHP中编码“发送消息”例程,而是创建“ SendMessage” Servlet,然后使用Curl发布JSON编码的消息。然后,servlet将使用连接工厂等。如果您将php组件放在任何MQ-Server特定代码中,则可以将php组件释放。您可以使用带有JSONED负载的TextMessage,用Jackson轻松编码和解码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top