我正在尝试理解AMQP消息中的app_id和cluster_id字段。我甚至尝试阅读AMQP规范,定义如下:
但是app_id和cluster_id字段是什么还不清楚。这在AMQP 1.0中同样不清楚(Rabbitmq默认不使用哪个)
(这与我的另一个问题AMQP(Rabbitmq)确定坏消息的来源有关)
到目前为止,我得到的最好答案来自:
https://www.rabbitmq.com/resources/specs/amqp0-9-1.extended.xml
上面写着:
<!-- For application use, no formal behaviour -->
<field name="app-id" domain="shortstr" label="creating application id"/>
<!-- Deprecated, was old cluster-id property -->
<field name="reserved" domain="shortstr" label="reserved, must be empty"/>
无论cluster_id最初用于什么(也许是识别集群?),它都不再使用。
注释指出“没有正式行为”,我解释为这意味着标头是允许的,但它完全是实现定义的,可以用于任何事情。鉴于您也可以有自定义标头(例如,请参阅此问题),打扰任何没有自己明确定义的语义学的标头似乎很奇怪(糟糕的协议设计?)。