308.7. 其他备注
308.7.1. 消息标头格式
SJMS2 组件使用与 Camel JMS 组件中使用的相同标头格式策略。此可插入的策略确保通过 wire 发送的消息符合 JMS Message 规格。
对于 exchange.in.header
,以下规则适用于标头键:
-
以
JMS
或JMSX
开头的键被保留。 -
exchange.in.headers
键必须是 literals,且所有为有效的 Java 标识符(请勿在键名称中使用点)。 当使用 JMS 消息时,Camel 替换了点 & hyphens 和 reverse:
- 当 Camel 使用消息时,由 DOT 和反向替换替换。
-
当 Camel 使用消息时,由 HYPHEN 和反向替换替换。
另请参阅jmsKeyFormatStrategy
选项,它允许使用您自己的自定义策略进行格式化密钥。
对于 exchange.in.header
,以下规则适用于标头值:
308.7.2. 消息内容
要通过线路传递内容,我们必须确保所发送的消息正文遵循 JMS 消息规格。因此,生成的所有对象都必须是原语或其计数器对象(如 Integer
、长
、Character
)。Type, String
,CharSequence
,Date
,BigDecimal
和 BigInteger
都转换为其 toString ()
表示。所有其他类型都会被丢弃。
308.7.3. 集群
当在集群环境中使用 InOut 和 SJMS2 时,您必须使用 TemporaryQueue 目的地,或者使用每个 InOut producer 端点对目的地的唯一命名回复。消息关联由端点处理,而不是代理上的消息选择器。InOut Producer Endpoint 使用由消息 JMSCorrelationID
缓存的 Java Concurrency Exchangers。这可提高 nice 性能,同时减少代理上的开销,因为所有消息都会按照对消费者生成的顺序从目的地使用。
目前,唯一的关联策略是使用 JMSCorrelationId
。InOut Consumer 也使用此策略,确保包含的 JMSReplyTo
目的地的所有响应消息也从请求中复制了 JMSCorrelationId
。