【问题标题】:Error publishing python dict to Solace using AMQP/qpid-proton使用 AMQP/qpid-proton 将 python dict 发布到 Solace 时出错
【发布时间】:2018-11-28 11:18:22
【问题描述】:

尝试从 solace-samples-amqp-qpid-proton-python 使用 python dict 的有效负载运行 producer.py

Message(id=(self.sent+1), body={'sequence':(self.sent+1)})

得到以下错误

拒绝消息:1 远程处置: Condition('amqp:not-implemented', '不支持的 AMQP 值类型: TOK_MAP_START')

尝试在正文中发送整数值时出现类似错误 - TOK_TYPE_INT

solace 是否仅支持 AMQP 上的字符串?

【问题讨论】:

    标签: solace


    【解决方案1】:

    Solace 消息代理支持 amqp-value 消息部分,其中包含 null、string、binary、symbol 或 uuid 类型的值。 (https://docs.solace.com/Open-APIs-Protocols/AMQP/AMQP-Protocol-Conformance.htm#Sec3-2-8)

    这样做是为了保持最大的消息互操作性。

    任何使用特定语言语义的已发布消息只能使用相同的语义来使用。 IE。如果使用 Python dict 发布,则只能使用 Python dict 解码,因此如果使用 MQTT 或 REST 消费者,将无法解码消息。

    最好的选择是使用跨语言的序列化库,这样可以更方便地进行未来的扩展。例如,您可能决定将来添加一个 REST 消费者,它可以使用跨语言序列化库对数据进行解码。

    【讨论】:

      猜你喜欢
      • 2015-12-26
      • 2014-12-08
      • 2014-03-15
      • 2018-07-12
      • 2015-02-21
      • 2016-08-06
      • 2021-09-11
      • 2017-07-01
      • 2014-09-07
      相关资源
      最近更新 更多