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这个参数

 

posted @ 2019-04-03 16:01  ~小胡同学~  阅读(1484)  评论(1编辑  收藏  举报