RabbitMQ:2、客户端开发向导

创建Connection,建立Channel,注意Channel不能在线程间共享(非线程安全)


建立交换器和队列

消费者消费消息支持推和拉两种模式

  • 推:经过consume方法订阅队列
  • 拉:经过channel.basicGet方法获取消息
    一旦consume之后,channel会被置为接收模式,直到取消队列的订阅为止,这期间RabbitMQ会不断地推消息给消费者。若是只获取单条消息,建议使用拉的模式,可是持续消费的时候须要使用推的模式来提升吞吐量,用循环拉的模式会影响RabbitMQ的性能。

消费端确认和拒绝

消费者订阅队列(Consume)时能够指定autoAck参数,当autoAck为false时,RabbitMQ会等消费者显式地回复确认信号后才从内存(或磁盘)移去消息(实质上是先打上删除标记,以后再删除)。当autoAck为true时会自动确认,而后删除消息。
当autoAck 参数置为 false ,对于 RabbitMQ 服务端而言 ,队列中的消息分红了两个部分:一部分是等待投递给消费者的消息;一部分是己经投递给消费者,可是尚未收到消费者确认
信号的消息。 若是 RabbitMQ 直没有收到消费者的确认信号,而且消费此消息的消费者己经
断开链接(断开链接是惟一标准,不会超时),则 RabbitMQ 会安排该消息从新进入队列,等待投递给下 个消费者,固然也有可
能仍是原来的那个消费者。安全

参考:RabbitMQ实战性能

相关文章
相关标签/搜索