rabbitmq channel方法參數詳解


1 Queue.Declareok queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments) 

  queue:routingKey,即隊列的名稱

  durable:true/false,是否支持持久化

  exclusive:true/false,排他隊列,表示是否只能被一個消費者所消費

  autoDelete:true/false,表示在沒有訂閱的消費者時是否被刪除

  arguments:其他參數

2 void basicQos(int prefetchSize,int prefetchCount,boolean global)

  prefetchSize:0

  prefetchCount:多個消費者消費能力不同,所以rabbitmq會在消費者消費掉prefetchCount個消息后,再次發送prefetchCount個消息給消費者

  global:true/false,是否將上面的配置應用於channel,若是否,就是應用於消費者consumer

3  void basicPublish(String exchange,String routingKey,boolean mandatory,boolean immediate,BasicProperties props,byte[] body) throws IOException

  exchange:交換機的名稱

  routingKey:隊列的名稱

  mandatory:true,exchange根據自身類型和消息routingKey沒有找到合適的隊列queue,那么就會調用basic.return將消息返回給生產者,若為false,則broker把消息丟棄

  immediate:true,當消息通過exchange路由到queue的時候,發現這個queue上面沒有消費者,那么就不會進入這個queue,如果根據routingKey匹配到的所有的隊列都是沒有消費者的,那么就會調用basic.return方法返回給生產者

  props:表示消息的持久化,配合channel和queue的durable使用

  body:發送的消息

4  Exchange.DeclareOk exchangeDeclare(String exchange,String type,boolean durable,boolean autoDelete,Map<String,Object> arguments)

  type:有四種類型,分別為:fanout,direct,topic,headers

  durable:表示是否持久化,為true,表示是exchange的持久化,僅設置這一項不代表消息的持久化。

  autoDelete:當沒有消費者消費的時候是否要刪除exchange

5 Exchange.BindOk exchangeBind(String destination,String source,String routingkey)

  生產者發送消息到source交換機,source根據路由鍵找到與其綁定的另一個交換機destination,並把消息轉發到destination中,存儲在destination綁定的隊列queue

6 Queue.BindOk queueBind(String queue, String exchange, String routingKey)

  routingKey:作為bindingKey,用於與生產者傳過來的消息中攜帶的routingKey做對比

7 String basicConsume(String queue,boolean autoAck,Consumer callback) 

  autoAck:消息的確認模式自動應答,true表示自動應答,false需要使用basicAck、basicNack或者是basicReject進行消息應答

  callback:消費者對象

8 void basicAck(long deliveryTag,boolean multiple)

  deliveryTag:消息的index

  multiple:是否批量,若為true,則一次性回執所有小於deliveryTag的消息

9 void basicNack(long deliveryTag,boolean multiple,boolean requeue)

  requeue:被拒絕是否重新入隊列

10 void basicReject(long deliveryTag,boolean requeue)

  basicReject方法和basicNack區別是每次只能拒絕一條消息,因為方法中沒有multiple這個參數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM