【发布时间】:2020-10-18 15:32:59
【问题描述】:
我已经为这两者之间的区别寻找了一个很好的解释, 但并没有真正找到。
到目前为止,我所知道的是: 相关 id 是一个字符串(转换为字符串的 Guid),交付标签是一个 int。 相关 id 对于每条消息都是唯一的,而传递标签仅在 频道(频道是作用域)。
没关系....但是目的有什么区别?为什么一条消息需要两个标识符?
【问题讨论】:
我已经为这两者之间的区别寻找了一个很好的解释, 但并没有真正找到。
到目前为止,我所知道的是: 相关 id 是一个字符串(转换为字符串的 Guid),交付标签是一个 int。 相关 id 对于每条消息都是唯一的,而传递标签仅在 频道(频道是作用域)。
没关系....但是目的有什么区别?为什么一条消息需要两个标识符?
【问题讨论】:
这两个标识符存在于两个不同的通信概念层,并且具有在每种情况下有用的不同属性。虽然可以设计一个协议,让一个标识符同时服务于两个目的,但将它们分开可以使两种实现更简单。
【讨论】:
Correlation ID 通常在 RabbitMQ 的上下文中使用,当我想查看发送消息的同步行为时,另一个发送者将发送响应,但在回复标签中会有相关 ID。在 RabbitMQ 中复制的常见模式是 RPC 调用,它更像是同步消息传递。
但是,传递标签是每个通道的消息传递的指标,通常在遵循确认传递模型时出现。
两者的用途完全不同,不是消息标识符。
【讨论】: