使用ActiveMQ / Stomp

在PHP和Java之间进行通信 背景 我有两个服务需要通过消息队列相互通信。一个是用PHP编写的遗留服务,另一个是Java。不久之后,PHP服务将用Java重写。他们彼此通信的当前方式是写入共享数据库,其他服务轮询。这就是我试图摆脱并替换为消息队列。 问题 我现在正在进行的通信是从PHP服务到Java服务。它需要发送一个相对复杂的对象(字符串和整数以及字符串和整数的列表和映射)。理想情况下,该解决方案在PHP中是可行的,在Java中是理想的,因为这将成为该项目的遗产。 可能的解决方案 1。     
已邀请:
我提出的解决方案是使用
jms-json-object
转换从PHP / Stomp中排队消息。这些消息是特制的JSON,当它们使用
readObject
在Java中出列时,可以使用XStream将它们重建为完整对象。这种重建发生在ActiveMQ的内部,我只需要确保必要的别名和转换器就位。当我们最终用Java替换PHP组件时,发送消息只需要使用
writeObject
。     
有一个用于PHP的STOMP客户端, http://pecl.php.net/package/stomp     
在我看来,你应该保持组件交互不受特定实现的影响。 ActiveMQ是错误的,许多系统将其删除,转而使用RabbitMQ或Sun OpenMQ。您必须避免在PHP中编写“发送消息”例程,而是创建“SendMessage”servlet,并使用curl发布JSON编码的消息。然后servlet将使用连接工厂等。只需一点开销,您就可以从任何mq-server特定代码中释放PHP组件。您可以使用带有JSON加载的TextMessage,使用Jackson轻松编码和解码。     

要回复问题请先登录注册