RabbitMQ 消息队列大体知识体系
2016-08-15 00:00
411 查看
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 手动模式
消费者从队列中获取消息后,服务器会将该消息标记为不可用状态,等待消费者的反馈,如果消费者一直没有反馈,那么该消息将一直处于不可用状态。
发送就会接受
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 手动模式
消费者从队列中获取消息后,服务器会将该消息标记为不可用状态,等待消费者的反馈,如果消费者一直没有反馈,那么该消息将一直处于不可用状态。
相关文章推荐
- RabbitMQ知识盘点【壹】_消息队列介绍及三种消息路由模式
- 电商之梳理rabbitmq相关知识---通信--消息队列
- java调用rabbitmq消息队列发送和接收消息实例
- 消息队列RabbitMQ与Spring集成
- RabbitMQ消息队列(一): Detailed Introduction 详细介绍(转)
- (八)RabbitMQ消息队列-通过Topic主题模式分发消息
- RabbitMQ消息队列(五):Routing 消息路由
- RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)
- 关于MQ 消息队列的通俗理解和 rabbitMQ 使用
- RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)
- 集群与负载均衡系列(4)——消息队列之Rabbitmq的搭建
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- 柯南君:看大数据时代下的IT架构(6)消息队列之RabbitMQ--案例(Publish/Subscribe起航)
- 消息队列系列(四):Rabbitmq常用命令行
- SpringBoot的RabbitMQ消息队列: 三、第二模式"Work queues"
- 利用Python学习RabbitMQ消息队列
- RabbitMQ消息队列应用
- spring整合消息队列rabbitmq
- RabbitMQ消息队列(一): Detailed Introduction 详细介绍[转]
- RabbitMQ——开源稳定的消息队列