RibbitMQ

参考地址

MQ—消息队列,FIFO先入先出,应用程序和应用程序之间的通行方式
RibbitMQ—是开源的遵循AMQP协议的可复用的企业消息系统,用Erlang语言开发

通过默认账户 guest/guest 登录
端口 15672
5种队列

1.simple 简单的 一个生产者,一个消费者
2.work 一个生产者,多个消费者,一个消息只能被一个消费者获取。 默认 轮询

Work模式的“能者多劳”(公平分发)

打开上述代码的注释:

// 同一时刻服务器只会发一条消息给消费者 channel.basicQos(1); //开启这行 表示使用手动确认模式
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
同时改为手动确认:

// 监听队列,false表示手动返回完成状态,true表示自动 channel.basicConsume(QUEUE_NAME, false, consumer);

3.publish/subcribe 订阅模式 一个消费者队列可以有多个消费者实例,只有其中一个消费者实例会消费 消息发送到没有队列绑定的交换机时,消息将丢失,因为,交换机没有存储消息的能力,消息只能存在在队列中

RibbitMQ_第1张图片
解读:
1、1个生产者,多个消费者
2、每一个消费者都有自己的一个队列
3、生产者没有将消息直接发送到队列,而是发送到了交换机
4、每个队列都要绑定到交换机
5、生产者发送的消息,经过交换机,到达队列,实现,一个消息被多个消费者获取的目的
注意:一个消费者队列可以有多个消费者实例,只有其中一个消费者实例会消费

4.routing 路由模式

RibbitMQ_第2张图片

5.tipics(交换机)

RibbitMQ_第3张图片

2.用户角色

角色 描述
1、超级管理员(administrator) 可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、监控者(monitoring) 可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、策略制定者(policymaker) 可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、普通管理者(management) 仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、其他 无法登陆管理控制台,通常就是普通的生产者和消费者。

3.Virtual Hosts (虚拟主机)

交换机属性

Name: 交换机名称
Type: 交换机类型,direct、topic、 fanout、 headers
Durability: 是否需要持久化
Auto Delete: 当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange
Internal: 当前Exchange是否用于RabbitMQ内部使用,默认为False
Arguments: 扩展参数,用于扩展AMQP协议定制化使用

RabbitMQ之交换机的四种类型和属性
channel.QueueDeclare(创建队列)各个参数详解
发送消息basicPublish各个参数详解
消息确认Ack
rabbitmq生产者消息确认机制
使用RabbitMQ实现延迟任务
spring boot实战(第十二篇)整合RabbitMQ

你可能感兴趣的:(RibbitMQ)