AMQP,RabbitMQ Push API怎么样?

时间:2017-10-05 11:10:34

标签: tcp rabbitmq amqp spring-amqp

我试图深入了解客户端和RabbitMQ服务器之间的Push API通信是如何工作的。

据我所知 - 但在案件中纠正我 - 客户端打开与代理(RabbitMQ)的TCP连接并保持此连接存活,直到客户决定关闭它。但在此连接期间,客户端可以立即收到消息。

我的问题是,在此连接期间,客户端监视Broker向他询问消息,或者当Broker将消息转发到客户端订阅的Queue时,只需接受该连接并将数据推送到客户端?

第一种情况:客户端监视代理的消息

最后一种情况:客户端不需要监控代理,代理只是推送数据

或其他?

1 个答案:

答案 0 :(得分:1)

接收消息有两种选择

  1. 客户端在频道上注册消费者回调(basicConsume);然后经纪人推动"给消费者的消息。

  2. 客户端向代理发送basicGet并收到一条消息(如果存在)。

  3. 第一个用例是最常见的。

    由于您使用this标记了问题,我假设您在Spring中感兴趣。对于第一种情况,Spring AMQP有一个监听器容器(和@RabbitListener注释);对于第二种情况,可以使用RabbitTemplate接收操作之一。

    我建议您查看以获得基本的理解。它们涵盖了几种语言,包括纯java和Spring AMQP。

    您还可以查看tutorials