simple queue
发送就会接受
work
// 同一时刻服务器只会发一条消息给消费者
channel.basicQos(1);
能者多劳
subscribe
channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "");// 绑定队列到交换机
消息发送到没有队列绑定的交换机时,消息将丢失,因为,交换机没有存储消息的能力,消息只能存在在队列中。
routing
subscribe的一种,可以对广播的信息进行过滤,已得到自己想需要获取的信息
topic 通配符匹配(routing的)
消息的确认模式(跟队列没有关系)
消费者从队列中获取消息,服务端如何知道消息已经被消费呢?
模式1:自动确认
channel.basicConsume(QUEUE_NAME, true, consumer); //true 自动模式
只要消息从队列中获取,无论消费者获取到消息后是否成功消息,都认为是消息已经成功消费。
模式2:手动确认
channel.basicConsume(QUEUE_NAME, false, consumer); //false 手动模式
消费者从队列中获取消息后,服务器会将该消息标记为不可用状态,等待消费者的反馈,如果消费者一直没有反馈,那么该消息将一直处于不可用状态。
转载于:https://my.oschina.net/u/2450896/blog/733067