RabbitMQ是一种消息中间件,用于处理来自客户端的异步消息。服务端将要发送的消息放入到队列池中。接收端可以根据RabbitMQ配置的转发机制接收服务端发来的消息。
常用消息队列有:Rabbitmq、Activemq、Rocketmq 阿里、Kafka、Tubemq 腾讯
应用场景:服务解耦、流量削峰、异步调用。
1、Exchange:接受生产者发送的消息,并根据Binding规则将消息路由给服务器中的队列。
ExchangeType常用的有direct、Fanout和Topic三种。ExchangeType决定了Exchange路由消息的行为。
2、Message Queue:消息队列,存储消息,等待消费者来取。
3、Binding Key:Exchange与Message Queue是通过binding key进行联系的。
4、Routing Key:指定这个消息的路由规则。我们的生产者只需要通过指定routing key来决定消息流向哪里。
二、RabbitMQ安装 设置ip进入rabbitmq 虚拟机后依次执行下面指令,更改并检查ip信息
./ip-static //执行脚本 ip: 192.168.64.140 //设置ip ifconfig //查看ip是否设置成功
***提前装置好docker容器,代码段中指令每条分开依次执行***
1 镜像 1.1 在线下载//rabbitmq:management 镜像中已经安装了管理界面 docker pull rabbitmq:management1.2 使用离线镜像包
将离线安装包上传到Linux系统,使用docker指令导入镜像
docker load -i rabbit-image.gz2 关闭防火墙
systemctl stop firewalld systemctl disable firewalld # 重启 docker 系统服务 systemctl restart docker3 配置管理员用户信息
创建rabbitmq文件夹,添加rabbitmq.conf配置文件,配置用户名和密码。
mkdir /etc/rabbitmq vim /etc/rabbitmq/rabbitmq.conf # 添加两行配置: default_user = admin default_pass = admin4 启动
docker run -d --name rabbit -p 5672:5672 -p 15672:15672 -v /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf -e RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf --restart=always rabbitmq:management5 访问控制台
http://192.168.64.140:15672
主要端口介绍
- 4369 – erlang发现口
- 5672 – client端通信口
- 15672 – 管理界面ui端口
- 25672 – server间内部通信口
只有一个消费者
2 工作模式多个消费者,从同一个队列接收消息
负载均衡:消息会轮询发送给所有消费者
合理的分发消息:1.手动ACK
3 发布订阅模式把消息群发给所有消费者,同一条消息所有消费者都能收到,使用fanout类型交换机
4 路由模式通过关键词匹配,来确定吧消息发送到哪个队列,direct交换机实现这种路由规则
5 主题模式和路由模式相同,具有特殊的关键词规则,Topic交换机实现这种特殊路由规则
6 RPC异步调用两个队列,调用队列,返回队列



