企业网站手机端跳转设置,cod建站平台,科技公司的网站建设费入什么科目,节能环保公司网站建设目录
RabbitMQ是什么
为什么要使用RabbitMQ
RabbitMQ的安装
RabbitMQ架构及其对应概念
队列的主要作用
交换机的主要作用
RabbitMQ的应用
通过控制面板操作#xff08;实现收发消息#xff09; RabbitMQ是什么
RabbitMQ是一个开源的消息队列软件#xff08;消息代理…目录
RabbitMQ是什么
为什么要使用RabbitMQ
RabbitMQ的安装
RabbitMQ架构及其对应概念
队列的主要作用
交换机的主要作用
RabbitMQ的应用
通过控制面板操作实现收发消息 RabbitMQ是什么
RabbitMQ是一个开源的消息队列软件消息代理实现了高级消息队列协议AMQP。它允许不同应用系统之间、以及分散系统中的各个组件之间通过消息传递进行通信和数据交换从而实现松耦合的系统设计。RabbitMQ支持多种消息协议易于在分布式系统中使用具有高可用性和可扩展性。
为什么要使用RabbitMQ
使用RabbitMQ在项目中主要是为了优化系统间通信的方式特别是在处理同步调用和异步调用时具有明显的优势。 提高系统的响应速度对于一些不需要立即返回结果的操作通过RabbitMQ实现异步调用可以显著减少用户的等待时间。例如用户注册成功后发送欢迎邮件这类操作可以通过消息队列异步执行避免了同步等待导致的延迟。 解耦系统组件通过消息队列生产者发送方和消费者接收方之间实现了松耦合。这意味着它们可以独立地扩展和修改而不会互相影响。比如订单系统与库存系统通过RabbitMQ进行交互即使将来库存系统的接口发生变化只要消息格式不变订单系统无需做任何修改。 增强系统的可靠性和稳定性当使用同步调用时如果被调用的服务不可用则可能导致整个流程失败。而使用RabbitMQ进行异步调用消息可以先存储在队列中待服务恢复后再进行处理从而提高了系统的容错能力。 支持负载均衡和扩展性RabbitMQ允许同一类型的消息被多个消费者消费这样可以根据实际需要动态增加或减少消费者来应对不同的负载情况实现资源的有效利用。
RabbitMQ的安装
基于Docker来安装RabbitMQ使用下面的命令即可
docker run \-e RABBITMQ_DEFAULT_USERmqtest \-e RABBITMQ_DEFAULT_PASS123456 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \-d \rabbitmq:3.8-management
安装命令中有两个映射的端口
15672RabbitMQ提供的管理控制台的端口
5672RabbitMQ的消息发送处理接口
安装完成后启动RabbitMQ
docker start mqdocker logs -f mq
我们访问 http://192.168.12.101:15672即可看到管理控制台。(注意填写你自己的虚拟机地址)
首次访问需要登录默认的用户名(mqtest)和密码(123456)在配置文件中可以修改。 登录后页面如图所示 RabbitMQ架构及其对应概念
RabbitMQ对应的架构如图 publisher生产者也就是发送消息的一方
consumer消费者也就是消费消息的一方
queue队列存储消息。生产者投递的消息会暂存在消息队列中等待消费者处理
exchange交换机负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。
virtual host虚拟主机起到数据隔离的作用。每个虚拟主机相互独立有各自的exchange、queue
队列的主要作用
消息存储队列是存储消息的地方。生产者将消息发送到队列中消费者从队列中读取消息进行处理。
保证消息顺序在一个队列内部消息的处理遵循先进先出FIFO原则确保了消息被按照发送的顺序消费。
负载均衡当有多个消费者订阅同一个队列时队列可以实现负载均衡的功能即每个消息只会被一个消费者接收并处理从而分散工作负载。
交换机的主要作用
路由选择交换机决定了消息应该被发送到哪些队列。它根据一定的规则例如消息的路由键和绑定到交换机的队列的绑定键之间的匹配关系来决定消息的去向。
直连交换机Direct Exchange通过精确匹配路由键将消息路由到队列。
扇形交换机Fanout Exchange忽略路由键将消息广播给所有绑定到该交换机的队列。
主题交换机Topic Exchange允许使用通配符对路由键进行模式匹配以更灵活的方式路由消息。
RabbitMQ的应用
通过控制面板操作实现收发消息
(1)我们打开Queues选项卡新建一个队列填写name然后点击Add queue. (2)点击Exchanges选项卡点击amq.fanout交换机进入交换机详情页然后点击Bindings菜单在表单中填写要绑定的队列名称,点击Bind。 3再次回到exchange页面找到刚刚绑定的amq.fanout点击进入详情页再次发送一条消息 回到Queues页面可以发现hello.queueTest中已经有一条消息了点击队列名称进入详情页查看队列详情这次我们点击get message可以看到消息到达队列了。 解读实现交换机发送信息到绑定的队列上了。