gpt4 book ai didi

java - Apache Camel + QPid 将 messageid 设置为 UUID 不起作用

转载 作者:行者123 更新时间:2023-12-01 11:11:10 24 4
gpt4 key购买 nike

我们有一个使用 Apache Camel 2.15.2 和 Apache Qpid 0.4.0 的应用程序,它通过 Amqp 向 Microsoft Service Bus 1.1 发送和接收消息。

我们最近从旧版 Qpid 0.32 升级了 Qpid,现在遇到一个问题,即无法将 AMQP 消息的 messageId 设置为接收方要求的 UUID。设置的 messageId 是在 Qpid 内的 JmsSession 类中创建的字符串。例如,它看起来像:“CLIENT115-61957-114498109876-0:15:1-1”

在此文件中: https://github.com/apache/qpid-jms/blob/master/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java我们可以看到以下内容:

  1. 在第 709 行,通过调用 getNextMessageId( Producer) 方法创建 messageId
  2. 在第 923 行,我们看到该 messageId 是使用生产者 ID 和消息序列生成的。

这永远不会生成格式化为 UUID 的消息 ID。我是否遗漏了某些内容,或者根本无法使用 Apache QPID 将 messageId 设置为 UUID?

最佳答案

客户端不会也不可能将 UUID 设置为 MessageID,并且您永远不应该依赖于特定格式的 JMSMessageID 值,因为这是供应商特定的值,在不同的 JMS 客户端库之间可能会有所不同。

如果您的应用程序依赖于分配有特定 ID 的消息,并且可以通过您的接收器应用程序进行关联,那么您应该为此使用消息属性,因为这就是它们的用途。

关于java - Apache Camel + QPid 将 messageid 设置为 UUID 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32353797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com