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

Yan*_*fan 2 java activemq-classic jms

JMS 消息 ID 如下所示ID:10.77.42.209-4280-1477454185311-1:1:1391:1:1。整个字符串被“-”和“:”分成几个部分。

显然,一部分代表生产者的IP地址,一部分可能代表消息ID。但别人有什么办法呢?

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

使用ActiveMQ并且没有自定义消息ID

dev*_*per 5

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

以下是取自规范的JMSMessageID 定义:

JMSMessageID 是一个字符串值,它应该充当识别历史存储库中的消息的唯一键。唯一性的确切范围由提供商定义。

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

HostName + "-" + Port + "-" + System.currentTimeMillis() + "-" + sequenceNumber
Run Code Online (Sandbox Code Playgroud)

您可以在此处参考 ActiveMQ Id 生成器逻辑的完整代码。

  • ActiveMQ JMS消息ID的最后三部分应由“SessionSeq:ProducerSeq:MessageSeq”组成 (2认同)