队列的删除
队列的删除一般用于删除不用的持久化队列,或错误创建的队列,队列的删除有三种方式
首先第一种:
queueDelete(queue)
Java
@Override
public AMQP.Queue.DeleteOk queueDelete(String queue) throws IOException {
return queueDelete(queue, false, false);
}
1
2
3
4
@Override
publicAMQP.Queue.DeleteOkqueueDelete(Stringqueue)throwsIOException{
returnqueueDelete(queue,false,false);
}
看源码,没什么好说的,是对第二种方式的封装。
接下来第二种删除方式:
Java
Queue.DeleteOk queueDelete(String queue, boolean ifUnused, boolean ifEmpty) throws IOException;
1
Queue.DeleteOkqueueDelete(Stringqueue,booleanifUnused,booleanifEmpty)throwsIOException;
参数很好理解
queue 队列名称
ifUnused 仅删除未被使用的队列,如果为true,还在使用则不删除
ifEmpty 仅删除空队列,如果为true 队列不为空队列则不删除
第三种队列删除方式:异步删除
Java
void queueDeleteNoWait(String queue, boolean ifUnused, boolean ifEmpty) throws IOException;
1
voidqueueDeleteNoWait(Stringqueue,booleanifUnused,booleanifEmpty)throwsIOException;
参数和第二种方式一样,不同的是该方式是异步的。
队列的清理
Java
Queue.PurgeOk queuePurge(String queue) throws IOException;
1
Queue.PurgeOkqueuePurge(Stringqueue)throwsIOException;
用于清空队列中的消息。
队列的绑定
队列必须绑定交换机,才能收到交换机发来的消息,而交换机往队列发消息是根据 交换机类型和 RoutingKey
消息队列的绑定方式有三种,第一种:
Java
queueBind(queue, exchange, routingKey)
1
queueBind(queue,exchange,routingKey)
Java
@Override
public AMQP.Queue.BindOk queueBind(String queue, String exchange, String routingKey) throws IOException {
return queueBind(queue, exchange, routingKey, null);
}
1
2
3
4
@Override
publicAMQP.Queue.BindOkqueueBind(Stringqueue,Stringexchange,StringroutingKey)throwsIOException{
returnqueueBind(queue,exchange,routingKey,null);
}
看源码可知是对第二种绑定方式的封装
主要来看第二种方式:
Java
Queue.BindOk queueBind(String queue, String exchange, String routingKey, Map arguments) throws IOException;
1
Queue.BindOkqueueBind(Stringqueue,Stringexchange,StringroutingKey,Maparguments)throwsIOException;
queue:队列名称
exchange:交换机名称
routingKey:路由Key
arguments:暂时没用到这个
第三种方式:
Java
void queueBindNoWait(String queue, String exchange, String routingKey, Map arguments) throws IOException;
1
voidqueueBindNoWait(Stringqueue,Stringexchange,StringroutingKey,Maparguments)throwsIOException;
异步绑定,没什么好说的。
队列解绑
Java
Queue.UnbindOk queueUnbind(String queue, String exchange, String routingKey) throws IOException;
Queue.UnbindOk queueUnbind(String queue, String exchange, String routingKey, Map arguments) throws IOException;
1
2
Queue.UnbindOkqueueUnbind(Stringqueue,Stringexchange,StringroutingKey)throwsIOException;
Queue.UnbindOkqueueUnbind(Stringqueue,Stringexchange,StringroutingKey,Maparguments)throwsIOException;
队列绑定的逆向操作,这个参照队列绑定就好啦