2016-06-20 46 views
2

的ActiveMQ的文档state“ObjectMessage的用法一般不鼓励”,用什么来代替?

虽然ObjectMessage使用通常不鼓励的,因为它 介绍的生产者和消费者之间的类路径耦合, ActiveMQ的支持它们作为JMS规范

具有部分在消息总线方面没有多少经验,我一直认为它们在概念上类似于SOAP Web服务,在SOAP服务中为消费者指定服务接口协议,然后构建等效的类代理。

我想实现的是:

  1. 出版商以某种方式表明该消息的架构
  2. 认购人以某种方式知道该消息的架构

ObjectMessage解决了这个问题,尽管在给定的类路径耦合方面不是最好的方式。就我所知,其他消息类型为消费者提供了有关预期消息格式的最低指导(例如,消费者必须假定MapMessage包含某些具有特定值类型的特定密钥)。

有没有另一种合理的方法来完成这个,或者这不是我应该追求的东西?

回答

0

由于这个想法是让发布者/订户知道模式。第一步是使用JSON/protobuf确定有效负载的结构。 (本人并不是XML的忠实粉丝)。然后我们将数据作为TextMessage/BytesMessage传递。

虽然这个想法是出版商/订户沟通架构。办法夫妇实现这一目标:

  1. 用户知道通过出版商的Javadoc或样品调用的模式。 (对于简单的使用情况听起来很好)
  2. 有一个集中配置来发布发布者和订阅者。该配置可能位于提供配置的数据库/应用程序中。有效的实施将确保发布者/订阅者在修改时都不会中断。这种方法在对象信息的方法的

优点:

  1. 没有有效载荷的紧耦合(即罐子升级/属性变化等)
  2. 明显的性能提升 - 这是一个example其中一个Java类与字符串和int比直接存储int和字符串的字符串多3.7倍。
相关问题