通常不鼓励使用从JMS提供程序返回的消息ID作为消息发布到队列的相关ID。人们如何为请求/响应架构生成相关ID?
答案 0 :(得分:2)
客户端可以使用UUID
等唯一ID标准生成新ID。
Here对你来说是个很好的教程。
您可以使用以下代码从JMS提供程序返回相关ID。
message.setJMSCorrelationID(UUID.randomUUID().toString());
producer.send(message);
LOG.info("jms-client sent:" + message.getJMSCorrelationID());
干杯。
答案 1 :(得分:1)
服务器端相关ID生成遇到两个问题:
单向协议(如JMS)没有直接返回的方法 相关ID返回给客户端。可以使用另一个频道但是 这使事情变得复杂。
意外问题可能会阻止客户端接收 即使请求已被接受,也会生成ID 在服务器上处理。这就是客户端ID生成的原因 被视为。
客户端生成的相关ID
客户端可以使用唯一的ID标准(如UUID)生成新ID
message.setJMSCorrelationID(UUID.randomUUID().toString());
参考:http://blogs.mulesoft.com/dev/anypoint-platform-dev/total-traceability/