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實戰性能

相關文章
相關標籤/搜索