JMS消息ID看起来像ID:10.77.42.209-4280-1477454185311-1:1:1391:1:1
。整个字符串由“ - ”和“:”分成几个部分。
显然,一部分代表生产者的IP地址,某些部分可能代表消息ID。但是其他人的意思是什么?
所以我的问题是每个部分的含义是什么?
使用ActiveMQ并且未自定义消息ID
答案 0 :(得分:4)
JMSMessageID是唯一字符串,生成逻辑由JMS提供程序决定。
以下是从specification获取的JMSMessageID定义:
JMSMessageID是一个String值,它应该作为唯一键 用于标识历史存储库中的消息。确切的范围 唯一性是提供者定义的。
由于您对ActiveMQ感兴趣,它包括:
HostName + "-" + Port + "-" + System.currentTimeMillis() + "-" + sequenceNumber
您可以参考ActiveMQ Id生成器逻辑的完整代码here。