【发布时间】:2010-12-13 10:20:32
【问题描述】:
我最近遇到了一个实现 AMQP 客户端协议的流行库的问题。 AMQP 规范定义了同步和异步消息。问题是我一个接一个地发送了两个同步请求,而没有等待第一个完成并且 RabbitMQ 服务器以相反的顺序响应。图书馆希望响应以与请求发送相同的顺序出现。这是图书馆的错误还是我的误用?
问题是:AMQP 客户端是否应该自行处理同步调用的序列化?
以下是我发现相关的一些参考资料。规范文档 [1] 第 2.2.1 节说明如下:
为了简化方法处理,我们为每个同步请求定义了不同的回复。也就是说,没有 方法用作两个不同请求的回复。这意味着一个对等点,发送一个同步 request,可以接受和处理传入的方法,直到获得有效的同步回复之一。这 将 AMQP 与更传统的 RPC 协议区分开来。
这里的误解是作者的意思是对传入方法的处理仅限于异步调用(如basic_deliver)还是还包括对不同同步调用的响应。
【问题讨论】:
标签: specifications rabbitmq amqp