RabbitMQ(十二)
1 RabbitMQ概述
RabbitMQ 是基于Erlang语言开发的开源消息通信中间件,官网地址:http://www.rabbitmq.com/
RabbitMQ的结构和概念
RabbitMQ中的相关概念:
- channel:操作MQ的工具;
- exchange:路由消息到队列中;
- queue:缓存消息;
- virtual host:虚拟主机,是对queue、exchange等资源的逻辑分组。
2 常见消息模型
MQ的官方文档中给出了5个MQ的Demo示例,对应了几种不同的用法:
- 基本消息队列(BasicQueue)
- 工作消息队列(WorkQueue)
- 发布订阅(Publish、Subscribe),又根据交换机类型不同分为三种:
- Fanout Exchange:广播
- Direct Exchange:路由
- Topic Exchange:主题
- Fanout Exchange:广播
3 案例分析
3.1 HelloWorld案例
官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色:
- publisher:消息发布者,将消息发送到队列queue;
- queue:消息队列,负责接受并缓存消息;
- consumer:订阅队列,处理队列中的消息。
基本消息队列的消息发送流程:
- 建立connection;
- 创建channel;
- 利用channel声明队列;
- 利用channel向队列发送消息。
基本消息队列的消息接收流程:
- 建立connection;
- 创建channel;
- 利用channel声明队列;
- 定义consumer的消费行为handleDelivery()
- 利用channel将消费者与队列绑定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?