JMS消息ID的每个部分的含义是什么?

时间:2016-11-23 05:28:52

标签: java jms activemq

JMS消息ID看起来像ID:10.77.42.209-4280-1477454185311-1:1:1391:1:1。整个字符串由“ - ”和“:”分成几个部分。

显然,一部分代表生产者的IP地址,某些部分可能代表消息ID。但是其他人的意思是什么?

所以我的问题是每个部分的含义是什么?

使用ActiveMQ并且未自定义消息ID

1 个答案:

答案 0 :(得分:4)

JMSMessageID是唯一字符串,生成逻辑由JMS提供程序决定。

以下是从specification获取的JMSMessageID定义:

  

JMSMessageID是一个String值,它应该作为唯一键   用于标识历史存储库中的消息。确切的范围   唯一性是提供者定义的。

由于您对ActiveMQ感兴趣,它包括:

HostName + "-" + Port + "-" + System.currentTimeMillis() + "-" + sequenceNumber

您可以参考ActiveMQ Id生成器逻辑的完整代码here