RabbitMQ
入门及安装
RabbitMQ官网:https://www.rabbitmq.com/
Erlang下载:https://www.erlang-solutions.com/downloads/
查看RabbitMQ对应哪个Erlang:https://www.rabbitmq.com/which-erlang.html
1 | rpm -Uvh erlang-solutions-2.0-1.noarch.rpm #解压Erlang |
Web界面
默认没有安装web端的客户端插件,需要安装
1 | rabbitmq-plugins enable rabbitmq_management |
默认账户的guest/guest只能在本地访问
添加账户
1 | rabbitmqctl add_user admin admin #新增用户 |
Docker安装Rabbitmq
1 | docker pull rabbitmq:management |
快速入门案例
https://www.rabbitmq.com/getstarted.html
AMQP
生产者
- 建立连接
- 开启通道
- 发送消息
- 释放资源
消费者
- 建立连接
- 开启信道
- 准备接收消息
- Broker推送消息
- 发送确认
- 释放资源
模式
简单模式
https://www.bilibili.com/video/BV1dX4y1V73G?p=15&spm_id_from=pageDriver
Fanout模式
https://www.bilibili.com/video/BV1dX4y1V73G?p=16&spm_id_from=pageDriver
Direct模式
https://www.bilibili.com/video/BV1dX4y1V73G?p=17&spm_id_from=pageDriver
Topic模式
https://www.bilibili.com/video/BV1dX4y1V73G?p=18&spm_id_from=pageDriver
Headers模式
https://www.bilibili.com/video/BV1dX4y1V73G?p=19&spm_id_from=pageDriver
Work轮询模式
https://www.bilibili.com/video/BV1dX4y1V73G?p=24&spm_id_from=pageDriver
Work公平分发
https://www.bilibili.com/video/BV1dX4y1V73G?p=25&spm_id_from=pageDriver
RabbitMQ使用场景
https://www.bilibili.com/video/BV1dX4y1V73G?p=26&spm_id_from=pageDriver
高级
过期时间TTL
表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。Rabbitmq可以对消息和队列设置TTL
死信队列DLX
死信交换机/死信邮箱。当消息在一个队列中变成死信之后,它能被重新发送到另一个交换机汇总,这个交换机就是DLX,绑定DLX的队列就称之为死信队列。消息变成死信,可能是由于一下的原因:
- 消息被拒绝
- 消息过期
- 队列达到最大长度