MQ(消息队列)
什么是MQ#
在认识MQ之前要知道什么是同步和异步
同步#
比如说一个查询业务,通过接口查询商品信息。我发起请求之后立刻获取后端数据这个就是同步。
异步#
就是我向你发送请求或者消息之后你可以不用理我,不像同步一样我想你发送请求你必须返回给我数据
RabbitMQ 五种模式#
RabbitMQ架构图#
-
publisher
:生产者,也就是发送消息的一方 -
consumer
:消费者,也就是消费消息的一方 -
queue
:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理 -
exchange
:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。 -
virtual host
:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue
1.Simple Queue#
简单模式由、消息生产者publisher、队列queue、消息监听者consumer构成。
使用场景:比如点到点聊天,异步发送邮件。
2.Work Queue#
工作队列模式,它的特点是多个消费者从一个队列种取消息每个消息只能被消费一次。
默认使用公平分发消息,比如有10个消息两个监听者分别5个。还支持轮询发放(能者多劳)根具消费者处理
的速度进行分配。
使用场景:高并发任务处理如网站订单处理,异步任务系统,多个消费者处理挤压任务,提升处理效率。
3. Publish/Subscribe#
发布于订阅模式,通过交换机把消息发送给多个队列,实现一条消息被多个消费者消费(广播消息)。
使用场景:广播消息,向用户推送广告
4.Routing#
路由模式,使用交换机(direct类型)和路由键(Routing Key),将消息发送到特定队列。
消息按照路由键精准匹配队列,实现有选择性的消息传递。
5.Topic#
主题模式:使用topic类型的交换机,支持模式匹配(如log.*匹配log.error和log。info)
消息通过路由键和模式匹配规则发送到对应队列。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了