From de3abc691bfbde7f5ead4a3bac2e7661d1ed30ce Mon Sep 17 00:00:00 2001 From: icecheng Date: Sun, 7 Sep 2025 11:59:09 +0800 Subject: [PATCH] --init --- README.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++ README_TESTS.md | 136 ----- assert/img.png | Bin 0 -> 48359 bytes assert/img_1.png | Bin 0 -> 49522 bytes assert/img_2.png | Bin 0 -> 67198 bytes assert/img_3.png | Bin 0 -> 55790 bytes assert/img_4.png | Bin 0 -> 64730 bytes assert/img_5.png | Bin 0 -> 76582 bytes help.py | 75 --- run_all_tests.py | 113 ---- test.py | 165 ------ 11 files changed, 1375 insertions(+), 489 deletions(-) create mode 100644 README.md delete mode 100644 README_TESTS.md create mode 100644 assert/img.png create mode 100644 assert/img_1.png create mode 100644 assert/img_2.png create mode 100644 assert/img_3.png create mode 100644 assert/img_4.png create mode 100644 assert/img_5.png delete mode 100644 help.py delete mode 100644 run_all_tests.py delete mode 100644 test.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..dd37e92 --- /dev/null +++ b/README.md @@ -0,0 +1,1375 @@ +# RabbitMQ 培训文档 + +--- + +## 1. MQ 的基本概念 + +### 1.1 什么是MQ? + +MQ全称为Message Queue即消息队列 + +- "消息队列" 是在消息的传输过程中保存消息的容器 +- 它是典型的生产者——消费者模型:生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息 +- 这样的好处:生产者只需要关注发消息,消费者只需要关注收消息,二者没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦 + +### 1.2 为什么要使用 MQ? + +消息队列(Message Queue)是一种在分布式系统中用于异步通信的中间件,核心作用是通过**存储-转发**机制实现消息的异步传递,从而解决系统间耦合、流量削峰、异步处理等问题。 + +#### 主要作用: + +**1. 解耦系统组件** +- 传统系统中,组件间通常直接调用(如 A 服务直接调用 B 服务),导致强耦合 +- 引入消息队列后,A 服务只需向队列发送消息,无需关心谁接收或处理;B 服务从队列中获取消息即可 +- 双方通过消息格式约定通信,互不依赖,降低了系统耦合度 + +**2. 异步处理,提高效率** +- 同步处理场景中,一个操作可能需要等待多个服务依次完成,总耗时是各步骤之和 +- 消息队列支持异步处理:主流程完成后,只需发送消息到队列,无需等待后续步骤完成即可返回结果 +- 其他服务异步从队列获取消息并处理,显著提升系统响应速度和吞吐量 + +**3. 流量削峰,保护系统** +- 突发流量(如电商秒杀、直播带货)可能瞬间压垮后端服务 +- 消息队列可作为"缓冲池":高峰期请求先进入队列,后端服务按自身处理能力从队列中消费消息 + +**4. 数据同步与分发** +- 同一消息可被多个消费者消费,实现"一次发送,多端处理" +- 跨系统数据同步,通过消息队列确保数据一致性 + +**5. 重试与容错** +- 若消费者服务临时故障,消息队列会保留消息,待服务恢复后重新投递 +- 配合重试机制,可解决网络波动、服务暂时不可用等问题 + +#### 典型应用场景: +- 电商下单:订单创建 → 消息队列 → 库存扣减、支付处理、物流通知等 +- 日志收集:各服务日志发送到队列,由日志系统统一消费、存储、分析 +- 分布式事务:通过消息队列实现最终一致性 +- 延迟任务:如订单超时未支付自动取消 + +--- + +## 2. RabbitMQ + +### 2.1 介绍 + +RabbitMQ 是一个开源的消息代理软件(也可称为消息队列中间件),由 Erlang 语言编写,基于 AMQP(高级消息队列协议) 实现,在分布式系统中用于实现应用程序之间的异步通信和解耦。 + +#### 特点: +- **多种协议支持**:除了 AMQP,RabbitMQ 还支持 STOMP、MQTT 等多种消息协议 +- **高可靠性**:通过消息持久化、集群、镜像队列等机制,保证消息不丢失 +- **灵活的路由机制**:交换器提供了丰富的消息路由规则 +- **多语言客户端支持**:提供了多种编程语言的客户端库 +- **管理界面友好**:具备一个可视化的管理界面 + +### 2.2 核心组件 + +``` +生产者 → 信道 → 交换器(Exchange) → 队列(Queue) → 信道 → 消费者 +``` + +#### 核心组件详解: + +**1. 生产者(Producer)** +- 定义:发送消息的应用程序或服务 +- 作用:将业务数据封装为消息,发送到 RabbitMQ 服务器 +- 特点:无需关心消息的最终接收者,只需指定消息发送到哪个交换器 + +**2. 消费者(Consumer)** +- 定义:接收并处理消息的应用程序或服务 +- 作用:持续监听队列,当有消息到达时,从队列中获取消息并进行业务处理 +- 特点:消费者与队列绑定,可通过自动确认或手动确认机制告知 RabbitMQ 消息是否处理完成 + +**3. 队列(Queue)** +- 定义:存储消息的容器,是消息的最终落脚点 +- 核心属性: + - 名称:队列的唯一标识 + - 持久化(Durable):若为 true,队列会在 RabbitMQ 重启后保留 + - 排他性(Exclusive):若为 true,队列仅对当前连接可见 + - 自动删除(Auto-delete):若为 true,当最后一个消费者断开连接后,队列自动删除 + +**4. 交换器(Exchange)** +- 定义:接收生产者发送的消息,并根据路由规则将消息转发到一个或多个队列 +- 作用:类似于"路由器",负责消息的路由逻辑 +- 类型: + - **直连交换器(Direct Exchange)**:消息的 Routing Key 与队列绑定的 Binding Key 完全匹配 + - **主题交换器(Topic Exchange)**:支持通配符(* 匹配单个单词,# 匹配多个单词) + - **扇出交换器(Fanout Exchange)**:忽略 Routing Key,将消息广播到所有绑定的队列 + - **头交换器(Headers Exchange)**:根据消息属性(Headers)而非 Routing Key 匹配 + +**5. 绑定(Binding)** +- 定义:交换器与队列之间的关联关系,包含路由规则 +- 作用:告诉交换器"哪些队列需要接收什么样的消息" + +**6. 连接(Connection)** +- 定义:生产者/消费者与 RabbitMQ 服务器之间的 TCP 连接 +- 特点:建立 TCP 连接开销较大,因此通常会复用连接 + +**7. 信道(Channel)** +- 定义:建立在 TCP 连接之上的虚拟连接,是消息传递的实际通道 +- 作用:减少 TCP 连接数量,降低服务器资源消耗 + +### 2.3 安装RabbitMQ + +#### 带Management页面 +```bash +docker run -d --name rabbitmq -p 5673:5672 -p 15673:15672 rabbitmq:management +``` + +#### 不带Management页面 +```bash +docker run -d --name rabbitmq -p 5673:5672 -p 15673:15672 rabbitmq +``` + +**访问管理页面**:http://localhost:15673 +- 账号:guest +- 密码:guest + +### 2.4 RabbitMQ管理页面 + +管理页面提供了丰富的监控和管理功能: + +- **Overview**:服务器概览,包括连接数、队列数、消息速率等 +- **Connections**:显示所有客户端连接信息 +- **Channels**:显示各个连接的信道信息 +- **Exchanges**:管理交换器 +- **Queues**:管理队列 +- **Admin**:用户和权限管理 + +--- + +## 3. Python集成 + +基于python aio-pika库进行集成 + +### 3.1 Fanout Exchange Demo + +#### 核心特点: +- 忽略路由键(Routing Key),无论设置什么值都会被忽略 +- 消息会广播到所有与之绑定的队列 +- 适合需要 "一对多" 通知的场景(如系统通知、日志广播) + +#### 架构关系图: +![img_1.png](assert/img_1.png) +```mermaid +graph TD + P[Producer
fanout_publish] --> E[Fanout Exchange
demo.fanout] + E --> Q1[Queue
demo.fanout.queue-0] + E --> Q2[Queue
demo.fanout.queue-1] + E --> Q3[Queue
demo.fanout.queue-2] + Q1 --> C1[Consumer 1
fanout_consumer_1] + Q2 --> C2[Consumer 2
fanout_consumer_2] + Q3 --> C3[Consumer 3
fanout_consumer_3] + + style P fill:#e1f5fe + style E fill:#f3e5f5 + style Q1 fill:#e8f5e8 + style Q2 fill:#e8f5e8 + style Q3 fill:#e8f5e8 + style C1 fill:#fff3e0 + style C2 fill:#fff3e0 + style C3 fill:#fff3e0 +``` + +#### 生产者代码: +```python +import asyncio +import aio_pika +from config import RABBITMQ_URI + +async def setup_fanout_exchange(exchange_name="demo.fanout", queue_name_prefix="demo.fanout.queue-"): + # 建立连接 + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + + # 1. 声明 Fanout 类型交换器 + fanout_exchange = await channel.declare_exchange( + exchange_name, + aio_pika.ExchangeType.FANOUT, + durable=True # 交换器持久化 + ) + + # 2. 定义需要绑定的队列名称列表 + queue_names = [queue_name_prefix + str(i) for i in range(3)] + + # 3. 循环创建队列并绑定到交换器 + for name in queue_names: + queue = await channel.declare_queue( + name, + durable=True, + auto_delete=False + ) + # 绑定队列到 Fanout 交换器(忽略路由键) + await queue.bind(fanout_exchange, routing_key="") + +async def fanout_publish(message: str = "", exchange_name: str = "demo.fanout"): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + + fanout_exchange = await channel.declare_exchange( + exchange_name, + aio_pika.ExchangeType.FANOUT, + durable=True + ) + + message = aio_pika.Message( + body=message.encode("utf-8"), + delivery_mode=aio_pika.DeliveryMode.PERSISTENT # 消息持久化 + ) + + # 发送消息到Fanout交换器 + await fanout_exchange.publish(message, routing_key="") + await connection.close() +``` + +#### 消费者代码: +```python +import asyncio +import aio_pika +from config import RABBITMQ_URI + +async def fanout_consumer(queue_name: str, consumer_id: int): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + await channel.set_qos(prefetch_count=1) + + queue = await channel.declare_queue( + queue_name, + durable=True, + auto_delete=False + ) + + async def on_message_received(message: aio_pika.IncomingMessage): + async with message.process(): + message_content = message.body.decode("utf-8") + print(f"[Fanout Consumer {consumer_id}] Received broadcast message:") + print(f" Listening queue: {queue_name}") + print(f" Message content: {message_content}") + print(f" Message persistence: {'Yes' if message.delivery_mode == 2 else 'No'}") + await asyncio.sleep(1) + + consumer_tag = f"fanout_consumer_{consumer_id}_{queue_name}" + await queue.consume(on_message_received, consumer_tag=consumer_tag) + print(f"[Fanout Consumer {consumer_id}] Started, listening to queue: {queue_name} (tag: {consumer_tag})") + await asyncio.Future() +``` + +#### 完整测试代码 + +**测试运行脚本:** +```python +#!/usr/bin/env python3 +""" +Run Fanout Exchange Test +""" + +import asyncio +import sys +import os + +# Add current directory to Python path +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from product.fanout_publish import fanout_publish, setup_fanout_exchange +from comsumer.fanout_consumer import start_all_fanout_consumers + + +async def run_fanout_test(): + """Run fanout exchange test with producer and consumer""" + print("=== Running Fanout Exchange Test ===") + + # Start consumer in background + consumer_task = asyncio.create_task(start_all_fanout_consumers()) + + # Wait for consumer to start + await asyncio.sleep(1) + + # Setup and publish messages + await setup_fanout_exchange("demo.fanout", "demo.fanout.queue-") + await fanout_publish(message="hello world", exchange_name="demo.fanout") + await fanout_publish(message="test message 2", exchange_name="demo.fanout") + await fanout_publish(message="test message 3", exchange_name="demo.fanout") + + # Wait for messages to be processed + await asyncio.sleep(3) + + # Cancel consumer + consumer_task.cancel() + print("✅ Fanout test completed successfully!") + + +if __name__ == "__main__": + asyncio.run(run_fanout_test()) +``` + +#### 测试输出: +``` +=== Running Fanout Exchange Test === +[Fanout Consumer 2] Started, listening to queue: demo.fanout.queue-1 (tag: fanout_consumer_2_demo.fanout.queue-1) +[Fanout Consumer 1] Started, listening to queue: demo.fanout.queue-0 (tag: fanout_consumer_1_demo.fanout.queue-0) +[Fanout Consumer 3] Started, listening to queue: demo.fanout.queue-2 (tag: fanout_consumer_3_demo.fanout.queue-2) + +[Fanout Consumer 2] Received broadcast message: + Listening queue: demo.fanout.queue-1 + Message content: hello world + Message persistence: Yes +[Fanout Consumer 1] Received broadcast message: + Listening queue: demo.fanout.queue-0 + Message content: hello world + Message persistence: Yes +[Fanout Consumer 3] Received broadcast message: + Listening queue: demo.fanout.queue-2 + Message content: hello world + Message persistence: Yes +[Fanout Consumer 3] Received broadcast message: + Listening queue: demo.fanout.queue-2 + Message content: test message 2 + Message persistence: Yes +[Fanout Consumer 1] Received broadcast message: + Listening queue: demo.fanout.queue-0 + Message content: test message 2 + Message persistence: Yes +[Fanout Consumer 2] Received broadcast message: + Listening queue: demo.fanout.queue-1 + Message content: test message 2 + Message persistence: Yes +[Fanout Consumer 1] Received broadcast message: + Listening queue: demo.fanout.queue-0 + Message content: test message 3 + Message persistence: Yes +[Fanout Consumer 2] Received broadcast message: + Listening queue: demo.fanout.queue-1 + Message content: test message 3 + Message persistence: Yes +[Fanout Consumer 3] Received broadcast message: + Listening queue: demo.fanout.queue-2 + Message content: test message 3 + Message persistence: Yes +✅ Fanout test completed successfully! +``` + +### 3.2 Direct Exchange Demo + +#### 核心特点: +- 基于路由键(routing key)与绑定键(binding key)的精确匹配 +- 只有当消息的路由键与队列的绑定键完全一致时,消息才会被路由到该队列 +- 适合需要精准路由的场景(如日志级别区分:error、warning、info 分别路由到不同队列) + +#### 架构关系图: + +```mermaid +graph TD + P[Producer
direct_publish] --> E[Direct Exchange
demo.direct] + E -->|routing_key: error| Q1[Queue
demo.direct.queue-error] + E -->|routing_key: warning| Q2[Queue
demo.direct.queue-warning] + E -->|routing_key: info| Q3[Queue
demo.direct.queue-info] + E -->|routing_key: debug| Q3 + Q1 --> C1[Error Level Consumer
direct_error_level] + Q2 --> C2[Warning Level Consumer
direct_warning_level] + Q3 --> C3[Info/Debug Level Consumer
direct_info/debug_level] + + style P fill:#e1f5fe + style E fill:#f3e5f5 + style Q1 fill:#ffebee + style Q2 fill:#fff3e0 + style Q3 fill:#e8f5e8 + style C1 fill:#ffebee + style C2 fill:#fff3e0 + style C3 fill:#e8f5e8 +``` + +#### 生产者代码: +```python +async def setup_direct_exchange(exchange_name="demo.direct", queue_prefix="demo.direct.queue-"): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + + direct_exchange = await channel.declare_exchange( + exchange_name, + aio_pika.ExchangeType.DIRECT, + durable=True + ) + + # 定义队列及对应的绑定键 + queue_bindings = [ + (f"{queue_prefix}error", ["error"]), # 处理错误级别的消息 + (f"{queue_prefix}warning", ["warning"]), # 处理警告级别的消息 + (f"{queue_prefix}info", ["info", "debug"]) # 处理信息和调试级别的消息 + ] + + for queue_name, binding_keys in queue_bindings: + queue = await channel.declare_queue(queue_name, durable=True, auto_delete=False) + for binding_key in binding_keys: + await queue.bind(direct_exchange, routing_key=binding_key) + print(f"Queue {queue_name} bound to routing keys: {binding_keys}") + +async def direct_publish(message: str, routing_key: str, exchange_name: str = "demo.direct"): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + + exchange = await channel.declare_exchange( + exchange_name, + aio_pika.ExchangeType.DIRECT, + durable=True + ) + + message_obj = aio_pika.Message( + body=message.encode("utf-8"), + delivery_mode=aio_pika.DeliveryMode.PERSISTENT + ) + + await exchange.publish(message_obj, routing_key=routing_key) + print(f"Message sent: {message} (routing key: {routing_key})") +``` + +#### 消费者代码: +```python +async def direct_consumer(queue_name: str, consumer_label: str): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + await channel.set_qos(prefetch_count=1) + + queue = await channel.declare_queue(queue_name, durable=True, auto_delete=False) + + async def on_message_received(message: aio_pika.IncomingMessage): + async with message.process(): + message_content = message.body.decode("utf-8") + print(f"[{consumer_label} Consumer] Received message:") + print(f" Queue name: {queue_name}") + print(f" Message content: {message_content}") + print(f" Message routing key: {message.routing_key}") + print(f" Processing time: {asyncio.get_running_loop().time():.2f}s") + + # 模拟不同级别消息的处理耗时 + if "error" in queue_name: + await asyncio.sleep(2) + elif "warning" in queue_name: + await asyncio.sleep(1) + elif "info" in queue_name: + await asyncio.sleep(0.5) + + consumer_tag = f"direct_{consumer_label.lower().replace(' ', '_')}_{queue_name}" + await queue.consume(on_message_received, consumer_tag=consumer_tag) + print(f"[{consumer_label} Consumer] Started, listening to queue: {queue_name} (tag: {consumer_tag})") + await asyncio.Future() +``` + +#### 完整测试代码 + +**测试运行脚本:** +```python +#!/usr/bin/env python3 +""" +Run Direct Exchange Test +""" + +import asyncio +import sys +import os + +# Add current directory to Python path +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from product.direct_publish import setup_direct_exchange, direct_publish +from comsumer.direct_consumer import start_all_direct_consumers + + +async def run_direct_exchange_test(): + """Run direct exchange test with producer and consumer""" + print("=== Running Direct Exchange Test ===") + + # Start consumer in background + consumer_task = asyncio.create_task(start_all_direct_consumers()) + + # Wait for consumer to start + await asyncio.sleep(1) + + # Setup exchange and publish messages + await setup_direct_exchange() + + test_messages = [ + ("System crash, unable to start", "error"), # Route to error queue + ("Disk space insufficient", "warning"), # Route to warning queue + ("User login successful", "info"), # Route to info queue + ("Debug info: Database connection successful", "debug") # Route to info queue + ] + + for msg, routing_key in test_messages: + await direct_publish(msg, routing_key) + await asyncio.sleep(0.5) + + # Wait for messages to be processed + await asyncio.sleep(3) + + # Cancel consumer + consumer_task.cancel() + print("✅ Direct exchange test completed successfully!") + + +if __name__ == "__main__": + asyncio.run(run_direct_exchange_test()) +``` + +#### 测试输出: +``` +=== Running Direct Exchange Test === +[Info/Debug Level Consumer] Started, listening to queue: demo.direct.queue-info (tag: direct_info/debug_level_demo.direct.queue-info) +[Warning Level Consumer] Started, listening to queue: demo.direct.queue-warning (tag: direct_warning_level_demo.direct.queue-warning) +[Error Level Consumer] Started, listening to queue: demo.direct.queue-error (tag: direct_error_level_demo.direct.queue-error) + +Queue demo.direct.queue-error bound to routing keys: ['error'] +Queue demo.direct.queue-warning bound to routing keys: ['warning'] +Queue demo.direct.queue-info bound to routing keys: ['info', 'debug'] + +[Error Level Consumer] Received message: + Queue name: demo.direct.queue-error + Message content: System crash, unable to start + Message routing key: error + Processing time: 322774.03s + +Message sent: System crash, unable to start (routing key: error) +[Warning Level Consumer] Received message: + Queue name: demo.direct.queue-warning + Message content: Disk space insufficient + Message routing key: warning + Processing time: 322774.54s + +Message sent: Disk space insufficient (routing key: warning) +[Info/Debug Level Consumer] Received message: + Queue name: demo.direct.queue-info + Message content: User login successful + Message routing key: info + Processing time: 322775.06s + +Message sent: User login successful (routing key: info) +[Info/Debug Level Consumer] Received message: + Queue name: demo.direct.queue-info + Message content: Debug info: Database connection successful + Message routing key: debug + Processing time: 322775.57s + +Message sent: Debug info: Database connection successful (routing key: debug) +✅ Direct exchange test completed successfully! +``` + +### 3.3 Direct Exchange Demo (负载均衡) + +#### 实现原理: +1. 创建多个队列:每个队列绑定到同一个 Direct Exchange,但使用不同的路由键 +2. 生产者路由策略:通过轮询、随机或按消息特征哈希的方式,选择一个路由键 +3. 消费者处理:每个队列对应一个或多个消费者,各自处理分配到的消息 + +#### 架构关系图: +```mermaid +graph TD + P[BalancedProducer
轮询发送] --> E[Direct Exchange
demo.direct.multi.queue] + E -->|routing_key: route.1| Q1[Queue
task.queue.1] + E -->|routing_key: route.2| Q2[Queue
task.queue.2] + E -->|routing_key: route.3| Q3[Queue
task.queue.3] + Q1 --> C1[Consumer 1
multi_consumer_1] + Q2 --> C2[Consumer 2
multi_consumer_2] + Q3 --> C3[Consumer 3
multi_consumer_3] + + P -.->|轮询算法| P + + style P fill:#e1f5fe + style E fill:#f3e5f5 + style Q1 fill:#e8f5e8 + style Q2 fill:#e8f5e8 + style Q3 fill:#e8f5e8 + style C1 fill:#fff3e0 + style C2 fill:#fff3e0 + style C3 fill:#fff3e0 +``` + +#### 生产者代码: +```python +class BalancedProducer: + def __init__(self, exchange_name="demo.direct.multi.queue", queue_count=3): + self.exchange_name = exchange_name + self.queue_count = queue_count + self.current_index = 0 # 轮询索引 + + async def connect(self): + self.connection = await aio_pika.connect_robust(RABBITMQ_URI) + self.channel = await self.connection.channel() + self.exchange = await self.channel.declare_exchange( + self.exchange_name, + aio_pika.ExchangeType.DIRECT, + durable=True + ) + + async def publish(self, message: str): + # 轮询算法:每次发送后切换到下一个路由键 + self.current_index = (self.current_index + 1) % self.queue_count + route_key = f"route.{self.current_index + 1}" + + message_obj = aio_pika.Message( + body=message.encode("utf-8"), + delivery_mode=aio_pika.DeliveryMode.PERSISTENT + ) + + await self.exchange.publish(message_obj, routing_key=route_key) + print(f"Message sent: {message} (routed to {route_key})") +``` + +#### 消费者代码: +```python +async def queue_consumer(queue_name: str, consumer_id: int): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + await channel.set_qos(prefetch_count=1) + + queue = await channel.declare_queue(queue_name, durable=True, auto_delete=False) + + async def on_message(message: aio_pika.IncomingMessage): + async with message.process(): + content = message.body.decode("utf-8") + print(f"[Consumer {consumer_id}] Processing message: {content}") + print(f"[Consumer {consumer_id}] From queue: {queue_name}") + print(f"[Consumer {consumer_id}] Routing key: {message.routing_key}") + await asyncio.sleep(1) + + consumer_tag = f"multi_consumer_{consumer_id}_{queue_name}" + await queue.consume(on_message, consumer_tag=consumer_tag) + print(f"[Consumer {consumer_id}] Started, listening to queue: {queue_name} (tag: {consumer_tag})") + await asyncio.Future() +``` + +#### 完整测试代码 + +**测试运行脚本:** +```python +#!/usr/bin/env python3 +""" +Run Multi-Queue Load Balancing Test +""" + +import asyncio +import sys +import os + +# Add current directory to Python path +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from product.direct_multi_publish import setup_multi_queue_balance, BalancedProducer +from comsumer.direct_multi_consumer import start_balanced_consumers + + +async def run_multi_queue_balance_test(): + """Run multi-queue load balancing test with producer and consumer""" + print("=== Running Multi-Queue Load Balancing Test ===") + + queue_count = 3 + + # Start consumer in background + consumer_task = asyncio.create_task(start_balanced_consumers(queue_count=queue_count)) + + # Wait for consumer to start + await asyncio.sleep(1) + + # Setup and publish messages + await setup_multi_queue_balance(queue_count=queue_count) + + producer = BalancedProducer(queue_count=queue_count) + await producer.connect() + + for i in range(10): + await producer.publish(f"Task {i + 1}: Multi-queue load balancing test") + await asyncio.sleep(0.3) + + await producer.close() + + # Wait for messages to be processed + await asyncio.sleep(3) + + # Cancel consumer + consumer_task.cancel() + print("✅ Multi-queue load balancing test completed successfully!") + + +if __name__ == "__main__": + asyncio.run(run_multi_queue_balance_test()) +``` + +#### 测试输出: +``` +=== Running Multi-Queue Load Balancing Test === +[Consumer 2] Started, listening to queue: task.queue.2 (tag: multi_consumer_2_task.queue.2) +[Consumer 3] Started, listening to queue: task.queue.3 (tag: multi_consumer_3_task.queue.3) +[Consumer 1] Started, listening to queue: task.queue.1 (tag: multi_consumer_1_task.queue.1) + +Queue task.queue.1 bound to routing key: route.1 +Queue task.queue.2 bound to routing key: route.2 +Queue task.queue.3 bound to routing key: route.3 + +[Consumer 2] Processing message: Task 1: Multi-queue load balancing test +[Consumer 2] From queue: task.queue.2 +[Consumer 2] Routing key: route.2 + +Message sent: Task 1: Multi-queue load balancing test (routed to route.2) +[Consumer 3] Processing message: Task 2: Multi-queue load balancing test +[Consumer 3] From queue: task.queue.3 +[Consumer 3] Routing key: route.3 + +Message sent: Task 2: Multi-queue load balancing test (routed to route.3) +[Consumer 1] Processing message: Task 3: Multi-queue load balancing test +[Consumer 1] From queue: task.queue.1 +[Consumer 1] Routing key: route.1 + +Message sent: Task 3: Multi-queue load balancing test (routed to route.1) +Message sent: Task 4: Multi-queue load balancing test (routed to route.2) +[Consumer 2] Processing message: Task 4: Multi-queue load balancing test +[Consumer 2] From queue: task.queue.2 +[Consumer 2] Routing key: route.2 + +Message sent: Task 5: Multi-queue load balancing test (routed to route.3) +[Consumer 3] Processing message: Task 5: Multi-queue load balancing test +[Consumer 3] From queue: task.queue.3 +[Consumer 3] Routing key: route.3 + +Message sent: Task 6: Multi-queue load balancing test (routed to route.1) +[Consumer 1] Processing message: Task 6: Multi-queue load balancing test +[Consumer 1] From queue: task.queue.1 +[Consumer 1] Routing key: route.1 + +Message sent: Task 7: Multi-queue load balancing test (routed to route.2) +[Consumer 2] Processing message: Task 7: Multi-queue load balancing test +[Consumer 2] From queue: task.queue.2 +[Consumer 2] Routing key: route.2 + +Message sent: Task 8: Multi-queue load balancing test (routed to route.3) +[Consumer 3] Processing message: Task 8: Multi-queue load balancing test +[Consumer 3] From queue: task.queue.3 +[Consumer 3] Routing key: route.3 + +Message sent: Task 9: Multi-queue load balancing test (routed to route.1) +[Consumer 1] Processing message: Task 9: Multi-queue load balancing test +[Consumer 1] From queue: task.queue.1 +[Consumer 1] Routing key: route.1 + +Message sent: Task 10: Multi-queue load balancing test (routed to route.2) +[Consumer 2] Processing message: Task 10: Multi-queue load balancing test +[Consumer 2] From queue: task.queue.2 +[Consumer 2] Routing key: route.2 + +✅ Multi-queue load balancing test completed successfully! +``` + +### 3.4 Topic Exchange Demo + +#### 核心特性: +- 路由键采用层级化字符串(用 . 分隔,如 order.create.user) +- 支持两种通配符: + - `*`:匹配1 个层级(如 user.* 可匹配 user.login 但不匹配 user.login.success) + - `#`:匹配0 个或多个层级(如 order.# 可匹配 order、order.pay、order.pay.success) + +#### 架构关系图: +```mermaid +graph TD + P[Producer
topic_publish] --> E[Topic Exchange
demo.topic] + E -->|binding: #.critical| Q1[Queue
demo.topic.queue-critical] + E -->|binding: order.#| Q2[Queue
demo.topic.queue-order] + E -->|binding: user.login.*| Q3[Queue
demo.topic.queue-user.login] + Q1 --> C1[CriticalHandler
topic_CriticalHandler] + Q2 --> C2[OrderHandler
topic_OrderHandler] + Q3 --> C3[UserLoginHandler
topic_UserLoginHandler] + + subgraph "路由键示例" + R1[order.create.critical] -.->|匹配 #.critical 和 order.#| Q1 + R1 -.-> Q2 + R2[user.login.success] -.->|匹配 user.login.*| Q3 + R3[system.log.info] -.->|无匹配| X[消息丢弃] + end + + style P fill:#e1f5fe + style E fill:#f3e5f5 + style Q1 fill:#ffebee + style Q2 fill:#e8f5e8 + style Q3 fill:#fff3e0 + style C1 fill:#ffebee + style C2 fill:#e8f5e8 + style C3 fill:#fff3e0 + style X fill:#f5f5f5 +``` + +#### 生产者代码: +```python +async def setup_topic_exchange(exchange_name="demo.topic", queue_prefix="demo.topic.queue-"): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + + topic_exchange = await channel.declare_exchange( + exchange_name, + aio_pika.ExchangeType.TOPIC, + durable=True + ) + + # 定义队列及对应的绑定键(支持通配符) + queue_bindings = [ + (f"{queue_prefix}critical", ["#.critical"]), # 匹配任意前缀+critical + (f"{queue_prefix}order", ["order.#"]), # 匹配所有order开头的路由键 + (f"{queue_prefix}user.login", ["user.login.*"]) # 匹配user.login+1个后缀 + ] + + for queue_name, binding_keys in queue_bindings: + queue = await channel.declare_queue(queue_name, durable=True, auto_delete=False) + for binding_key in binding_keys: + await queue.bind(topic_exchange, routing_key=binding_key) + print(f"Queue {queue_name} bound to routing keys: {binding_keys}") + +async def topic_publish(message: str, routing_key: str, exchange_name: str = "demo.topic"): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + + exchange = await channel.declare_exchange( + exchange_name, + aio_pika.ExchangeType.TOPIC, + durable=True + ) + + message_obj = aio_pika.Message( + body=message.encode("utf-8"), + delivery_mode=aio_pika.DeliveryMode.PERSISTENT + ) + + await exchange.publish(message_obj, routing_key=routing_key) + print(f"Message sent: {message} (routing key: {routing_key})") +``` + +#### 消费者代码: +```python +async def topic_consumer(queue_name: str, consumer_id: str): + connection = await aio_pika.connect_robust(RABBITMQ_URI) + channel = await connection.channel() + await channel.set_qos(prefetch_count=1) + + queue = await channel.declare_queue(queue_name, durable=True, auto_delete=False) + + async def on_message(message: aio_pika.IncomingMessage): + async with message.process(): + message_content = message.body.decode("utf-8") + print(f"[Consumer {consumer_id}] Received message: {message_content}") + print(f"[Consumer {consumer_id}] Message routing key: {message.routing_key}") + print(f"[Consumer {consumer_id}] From queue: {queue_name}") + await asyncio.sleep(1) + + consumer_tag = f"topic_{consumer_id}_{queue_name}" + await queue.consume(on_message, consumer_tag=consumer_tag) + print(f"[Consumer {consumer_id}] Started, listening to queue: {queue_name} (tag: {consumer_tag})") + await asyncio.Future() +``` + +#### 完整测试代码 + +**测试运行脚本:** +```python +#!/usr/bin/env python3 +""" +Run Topic Exchange Test +""" + +import asyncio +import sys +import os + +# Add current directory to Python path +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from product.topic_publish import setup_topic_exchange, topic_publish +from comsumer.topic_consumer import start_all_topic_consumers + + +async def run_topic_exchange_test(): + """Run topic exchange test with producer and consumer""" + print("=== Running Topic Exchange Test ===") + + # Start consumer in background + consumer_task = asyncio.create_task(start_all_topic_consumers()) + + # Wait for consumer to start + await asyncio.sleep(1) + + # Setup exchange and publish messages + await setup_topic_exchange() + + test_messages = [ + ("Order creation failed (critical error)", "order.create.critical"), + ("User login successful", "user.login.success"), + ("Order payment completed", "order.pay.success"), + ("System crash (critical error)", "system.crash.critical"), + ("User login failed", "user.login.failed"), + ("Normal system log", "system.log.info") # Won't match any binding key, will be discarded + ] + + for msg, routing_key in test_messages: + await topic_publish(msg, routing_key) + await asyncio.sleep(0.5) + + # Wait for messages to be processed + await asyncio.sleep(3) + + # Cancel consumer + consumer_task.cancel() + print("✅ Topic exchange test completed successfully!") + + +if __name__ == "__main__": + asyncio.run(run_topic_exchange_test()) +``` + +#### 测试输出: +``` +=== Running Topic Exchange Test === +[Consumer CriticalHandler] Started, listening to queue: demo.topic.queue-critical (tag: topic_CriticalHandler_demo.topic.queue-critical) +[Consumer UserLoginHandler] Started, listening to queue: demo.topic.queue-user.login (tag: topic_UserLoginHandler_demo.topic.queue-user.login) +[Consumer OrderHandler] Started, listening to queue: demo.topic.queue-order (tag: topic_OrderHandler_demo.topic.queue-order) + +Queue demo.topic.queue-critical bound to routing keys: ['#.critical'] +Queue demo.topic.queue-order bound to routing keys: ['order.#'] +Queue demo.topic.queue-user.login bound to routing keys: ['user.login.*'] + +[Consumer OrderHandler] Received message: Order creation failed (critical error) +[Consumer OrderHandler] Message routing key: order.create.critical +[Consumer OrderHandler] From queue: demo.topic.queue-order + +[Consumer CriticalHandler] Received message: Order creation failed (critical error) +[Consumer CriticalHandler] Message routing key: order.create.critical +[Consumer CriticalHandler] From queue: demo.topic.queue-critical + +Message sent: Order creation failed (critical error) (routing key: order.create.critical) +[Consumer UserLoginHandler] Received message: User login successful +[Consumer UserLoginHandler] Message routing key: user.login.success +[Consumer UserLoginHandler] From queue: demo.topic.queue-user.login + +Message sent: User login successful (routing key: user.login.success) +[Consumer OrderHandler] Received message: Order payment completed +[Consumer OrderHandler] Message routing key: order.pay.success +[Consumer OrderHandler] From queue: demo.topic.queue-order + +Message sent: Order payment completed (routing key: order.pay.success) +[Consumer CriticalHandler] Received message: System crash (critical error) +[Consumer CriticalHandler] Message routing key: system.crash.critical +[Consumer CriticalHandler] From queue: demo.topic.queue-critical + +Message sent: System crash (critical error) (routing key: system.crash.critical) +[Consumer UserLoginHandler] Received message: User login failed +[Consumer UserLoginHandler] Message routing key: user.login.failed +[Consumer UserLoginHandler] From queue: demo.topic.queue-user.login + +Message sent: User login failed (routing key: user.login.failed) +Message sent: Normal system log (routing key: system.log.info) +✅ Topic exchange test completed successfully! +``` + +### 3.5 可靠的RabbitMQ生产者消费者 + +#### 可靠性保证机制 + +要确保消息消费的可靠性,需要从以下几个方面入手: + +**1. 消息持久化** +- 交换器持久化:`durable=True` +- 队列持久化:`durable=True` +- 消息持久化:`delivery_mode=PERSISTENT` + +**2. 消息确认机制** +- 自动确认:`async with message.process()` +- 手动确认:`message.ack()` / `message.nack()` +- 确保消息处理完成后才确认 + +**3. 消息幂等性** +- 使用消息ID去重 +- 内存中记录已处理的消息ID +- 防止重复处理相同消息 + +**4. 重试机制** +- 可配置最大重试次数 +- 消费者内部重试,避免消息重新入队 +- 指数退避重试策略 + +**5. 死信队列** +- 处理失败消息的完整解决方案 +- 自动创建死信交换器和队列 +- 详细的错误信息记录 + +#### 关键代码实现 + +**可靠生产者代码:** +```python +class ReliableProducer: + """Reliable Message Producer""" + + def _generate_message_id(self, message_data: Dict[str, Any]) -> str: + """Generate message ID for message""" + message_type = message_data.get('type', '') + content = message_data.get('content', '') + + # For duplicate_test type messages, generate fixed ID based on content + if message_type == 'duplicate_test': + import hashlib + content_hash = hashlib.md5(content.encode('utf-8')).hexdigest() + return f"duplicate_{content_hash[:8]}" + else: + return f"msg_{asyncio.get_running_loop().time()}" + + async def publish_reliable_message(self, message_data: Dict[str, Any]) -> bool: + """Publish reliable message""" + try: + # Generate message ID + message_id = self._generate_message_id(message_data) + + # Add message metadata + message_data.update({ + 'timestamp': datetime.now().isoformat(), + 'message_id': message_id + }) + + # Create persistent message + message = aio_pika.Message( + body=json.dumps(message_data, ensure_ascii=False).encode('utf-8'), + delivery_mode=aio_pika.DeliveryMode.PERSISTENT, # Message persistence + message_id=message_id, + timestamp=datetime.now() + ) + + # Send message and wait for confirmation + await self.exchange.publish(message, routing_key="reliable") + logger.info(f"[Producer] Message sent: {message_id}") + return True + except Exception as e: + logger.error(f"[Producer] Failed to send message: {e}") + return False +``` + +**可靠消费者代码:** +```python +class ReliableConsumer: + """Reliable Message Consumer""" + + def __init__(self, queue_name: Optional[str] = None, consumer_name: Optional[str] = None): + self.processed_messages: Set[str] = set() # Store processed message IDs + + async def process_message(self, message: aio_pika.IncomingMessage): + """Core message processing logic""" + try: + # Parse message + message_data = json.loads(message.body.decode('utf-8')) + message_id = message_data.get('message_id') + + # Check if message has been processed before (idempotency check) + if message_id in self.processed_messages: + logger.warning(f"[Consumer-{self.consumer_name}] 🚫 Duplicate message detected, skipping: {message_id}") + await message.ack() + return + + logger.info(f"[Consumer-{self.consumer_name}] Starting to process message: {message_id}") + + # Retry processing message directly + success = await self.retry_process_message(message_data, message_id, 0) + + # Only record processed message ID after successful processing + if success: + self.processed_messages.add(message_id) + await message.ack() + logger.info(f"[Consumer-{self.consumer_name}] Message {message_id} processed and acknowledged") + else: + # Processing failed, send to dead letter queue + await self.send_to_dead_letter_queue(message, message_id, "Processing failed") + await message.ack() + except Exception as e: + logger.error(f"[Consumer-{self.consumer_name}] Failed to process message: {e}") + await message.ack() + + async def retry_process_message(self, message_data: Dict[str, Any], message_id: str, retry_count: int) -> bool: + """Retry processing message directly""" + max_retries = config.max_retries + last_error = None + + for attempt in range(max_retries + 1): + try: + logger.info(f"[Consumer-{self.consumer_name}] Attempting to process message {message_id}, attempt {attempt + 1}") + await self.message_handler(message_data) + logger.info(f"[Consumer-{self.consumer_name}] Message {message_id} processed successfully") + return True + except Exception as e: + last_error = str(e) + logger.warning(f"[Consumer-{self.consumer_name}] Message {message_id} failed on attempt {attempt + 1}: {e}") + if attempt < max_retries: + await asyncio.sleep(1) + else: + logger.error(f"[Consumer-{self.consumer_name}] Message {message_id} failed after {max_retries} retries: {last_error}") + return False +``` + +**死信队列消费者代码:** +```python +class DeadLetterConsumer: + """Dead Letter Queue Consumer""" + + async def process_dead_letter_message(self, message: aio_pika.IncomingMessage): + """Process dead letter message""" + try: + # Parse dead letter message + dead_letter_data = json.loads(message.body.decode('utf-8')) + original_message = dead_letter_data.get('original_message', {}) + error_info = dead_letter_data.get('error_info', 'Unknown') + message_id = dead_letter_data.get('message_id', 'Unknown') + + # Print dead letter message information + logger.error("=" * 50) + logger.error("[Dead Letter Consumer] Received Dead Letter Message:") + logger.error(f"[Dead Letter Consumer] Message ID: {message_id}") + logger.error(f"[Dead Letter Consumer] Message Content: {json.dumps(original_message, ensure_ascii=False, indent=2)}") + logger.error(f"[Dead Letter Consumer] Error Reason: {error_info}") + logger.error("=" * 50) + + # Save to database + await self.save_to_database(original_message, error_info, message_id) + + # Acknowledge dead letter message + await message.ack() + logger.info(f"[Dead Letter Consumer] Dead letter message {message_id} processed") + except Exception as e: + logger.error(f"[Dead Letter Consumer] Failed to process dead letter message: {e}") + await message.nack(requeue=False) +``` + +#### 完整测试代码 + +**测试运行脚本:** +```python +""" +RabbitMQ 可靠消息传递测试模块 +""" + +import asyncio +import logging + +from reliable_mq import ReliableProducer, ReliableConsumer +from reliable_mq.dead_letter_consumer import DeadLetterConsumer +from reliable_mq.config import config + +# 配置日志 +logging.basicConfig( + level=getattr(logging, config.log_level), + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + + +async def run_context_manager_messaging(): + """使用上下文管理器测试可靠消息传递""" + logger.info("=== 使用上下文管理器测试可靠消息传递 ===") + + # 使用异步上下文管理器 + async with ReliableProducer() as producer: + async with ReliableConsumer(consumer_name="context_test_consumer") as consumer: + async with DeadLetterConsumer() as dead_letter_consumer: + # 启动消费者(在后台运行) + consumer_task = asyncio.create_task(consumer.start_consuming()) + dead_letter_task = asyncio.create_task(dead_letter_consumer.start_consuming()) + + # 等待消费者启动 + await asyncio.sleep(1) + + # 发送测试消息 + test_messages = [ + {"content": "重要业务消息1", "type": "business"}, + {"content": "系统通知消息2", "type": "notification"}, + {"content": "用户操作消息3", "type": "user_action"}, + {"content": "重复消息测试", "type": "duplicate_test"}, + {"content": "重复消息测试", "type": "duplicate_test"}, # 重复消息 + {"content": "会失败的消息1", "type": "will_fail"}, # 这些消息会失败并进入死信队列 + {"content": "会失败的消息2", "type": "will_fail"}, + {"content": "会失败的消息3", "type": "will_fail"}, + ] + + for msg in test_messages: + await producer.publish_reliable_message(msg) + await asyncio.sleep(0.5) + + # 等待消息处理完成 + await asyncio.sleep(30) + + # 取消任务 + consumer_task.cancel() + dead_letter_task.cancel() + + +if __name__ == '__main__': + asyncio.run(run_context_manager_messaging()) +``` + +**配置文件:** +```python +""" +RabbitMQ 可靠消息传递配置模块 +""" + +import os +from dataclasses import dataclass +from typing import Dict, Any + + +@dataclass +class Config: + """配置类""" + # RabbitMQ 连接配置 + rabbitmq_uri: str = "amqp://guest:guest@localhost:5673/" + + # 交换器和队列配置 + exchange_name: str = "reliable.exchange" + queue_name: str = "reliable.queue" + + # 死信队列配置 + dead_letter_exchange: str = "reliable.dead.letter.exchange" + dead_letter_queue: str = "reliable.dead.letter.queue" + + # 重试配置 + max_retries: int = 3 + message_ttl: int = 300000 # 5分钟 + + # QoS 配置 + prefetch_count: int = 1 + + # 日志配置 + log_level: str = "INFO" + + def get_connection_config(self) -> Dict[str, Any]: + """获取连接配置""" + return { + 'uri': self.rabbitmq_uri, + 'prefetch_count': self.prefetch_count + } + + def get_dead_letter_config(self) -> Dict[str, str]: + """获取死信队列配置""" + return { + 'dead_letter_exchange': self.dead_letter_exchange, + 'dead_letter_queue': self.dead_letter_queue + } + + +# 全局配置实例 +config = Config() +``` + +**自定义消息处理函数:** +```python +async def default_message_handler(message_data: Dict[str, Any]): + """Default message handler function""" + await asyncio.sleep(1) # Simulate processing time + + message_type = message_data.get('type', '') + content = message_data.get('content', '') + + # Simulate business logic processing + if message_type == 'will_fail': + raise Exception(f"Simulated business processing failure: {content}") + + logger.info(f"[Consumer] Business logic processing completed: {content}") +``` + +#### 测试结果 + +``` +2025-09-07 11:25:02,498 - __main__ - INFO - === 使用上下文管理器测试可靠消息传递 === +2025-09-07 11:25:02,509 - reliable_mq.reliable_producer - INFO - [Producer] Connected, queue: reliable.queue +2025-09-07 11:25:02,513 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Connected, listening to queue: reliable.queue +2025-09-07 11:25:02,518 - reliable_mq.dead_letter_consumer - INFO - [Dead Letter Consumer] Connected + +2025-09-07 11:25:03,523 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Starting to process message: msg_323632.845174041 +2025-09-07 11:25:03,524 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Message content: {'content': '重要业务消息1', 'type': 'business', 'timestamp': '2025-09-07T11:25:03.519240', 'message_id': 'msg_323632.845174041'} +2025-09-07 11:25:03,524 - reliable_mq.reliable_producer - INFO - [Producer] Message sent: msg_323632.845174041 (type: business, content: 重要业务消息1) +2025-09-07 11:25:04,524 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Business logic processing completed: 重要业务消息1 +2025-09-07 11:25:04,524 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Message msg_323632.845174041 processed successfully +2025-09-07 11:25:04,525 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Message msg_323632.845174041 processed and acknowledged +2025-09-07 11:25:04,525 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Current processed message count: 1 + +2025-09-07 11:25:07,539 - reliable_mq.reliable_consumer - WARNING - ================================================== +2025-09-07 11:25:07,539 - reliable_mq.reliable_consumer - WARNING - [Consumer-context_test_consumer] 🚫 Duplicate message detected, skipping: +2025-09-07 11:25:07,539 - reliable_mq.reliable_consumer - WARNING - [Consumer-context_test_consumer] Message ID: duplicate_090f7015 +2025-09-07 11:25:07,539 - reliable_mq.reliable_consumer - WARNING - [Consumer-context_test_consumer] Message content: { + "content": "重复消息测试", + "type": "duplicate_test", + "timestamp": "2025-09-07T11:25:05.546930", + "message_id": "duplicate_090f7015" +} +2025-09-07 11:25:07,539 - reliable_mq.reliable_consumer - WARNING - [Consumer-context_test_consumer] Total processed messages: 4 +2025-09-07 11:25:07,539 - reliable_mq.reliable_consumer - WARNING - ================================================== + +2025-09-07 11:25:14,551 - reliable_mq.reliable_consumer - ERROR - [Consumer-context_test_consumer] Message msg_323635.377526708 failed after 3 retries: Simulated business processing failure: 会失败的消息1 +2025-09-07 11:25:14,551 - reliable_mq.reliable_consumer - ERROR - [Consumer-context_test_consumer] Message sent to dead letter queue: msg_323635.377526708, error: Processing failed + +2025-09-07 11:25:14,560 - reliable_mq.dead_letter_consumer - ERROR - ================================================== +2025-09-07 11:25:14,560 - reliable_mq.dead_letter_consumer - ERROR - [Dead Letter Consumer] Received Dead Letter Message: +2025-09-07 11:25:14,560 - reliable_mq.dead_letter_consumer - ERROR - [Dead Letter Consumer] Message ID: msg_323635.377526708 +2025-09-07 11:25:14,560 - reliable_mq.dead_letter_consumer - ERROR - [Dead Letter Consumer] Message Content: { + "content": "会失败的消息1", + "type": "will_fail", + "timestamp": "2025-09-07T11:25:06.051557", + "message_id": "msg_323635.377526708" +} +2025-09-07 11:25:14,560 - reliable_mq.dead_letter_consumer - ERROR - [Dead Letter Consumer] Error Reason: Processing failed +2025-09-07 11:25:14,560 - reliable_mq.dead_letter_consumer - ERROR - ================================================== + +2025-09-07 11:25:15,064 - reliable_mq.dead_letter_consumer - INFO - [Dead Letter Consumer] 💾 Dead letter message saved to database: msg_323635.377526708 +2025-09-07 11:25:15,064 - reliable_mq.dead_letter_consumer - INFO - [Dead Letter Consumer] Database Record: { + "id": "msg_323635.377526708", + "original_message": { + "content": "会失败的消息1", + "type": "will_fail", + "timestamp": "2025-09-07T11:25:06.051557", + "message_id": "msg_323635.377526708" + }, + "error_info": "Processing failed", + "created_at": "2025-09-07T11:25:15.064341", + "status": "failed" +} + +2025-09-07 11:25:37,583 - reliable_mq.reliable_consumer - INFO - ================================================== +2025-09-07 11:25:37,583 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Processed Message Statistics: +2025-09-07 11:25:37,583 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Total Processed: 4 +2025-09-07 11:25:37,583 - reliable_mq.reliable_consumer - INFO - [Consumer-context_test_consumer] Processed Message IDs: ['msg_323632.845174041', 'msg_323633.351571583', 'duplicate_090f7015', 'msg_323633.854272166'] +2025-09-07 11:25:37,583 - reliable_mq.reliable_consumer - INFO - ================================================== +``` + +#### 架构关系图 +![img_5.png](assert/img_5.png) +```mermaid +graph TD + P[ReliableProducer
可靠生产者] --> E[Reliable Exchange
reliable.exchange] + E --> Q[Reliable Queue
reliable.queue] + Q --> C[ReliableConsumer
可靠消费者] + + C -->|处理成功| ACK[Message ACK
消息确认] + C -->|处理失败| RETRY[Retry Logic
重试机制] + RETRY -->|重试成功| ACK + RETRY -->|重试失败| DLQ[Dead Letter Queue
死信队列] + + DLQ --> DLC[DeadLetterConsumer
死信消费者] + DLC --> DB[(Database
数据库)] + + subgraph "可靠性保证" + PERSIST[Message Persistence
消息持久化] + IDEMPOTENT[Idempotency Check
幂等性检查] + CONFIRM[Publisher Confirmation
发布确认] + end + + subgraph "消息流程" + MSG1[正常消息] --> SUCCESS[处理成功] + MSG2[重复消息] --> SKIP[跳过处理] + MSG3[失败消息] --> FAIL[重试后失败] + end + + style P fill:#e1f5fe + style E fill:#f3e5f5 + style Q fill:#e8f5e8 + style C fill:#fff3e0 + style DLQ fill:#ffebee + style DLC fill:#ffebee + style DB fill:#f3e5f5 + style ACK fill:#e8f5e8 + style RETRY fill:#fff3e0 +``` + diff --git a/README_TESTS.md b/README_TESTS.md deleted file mode 100644 index c595462..0000000 --- a/README_TESTS.md +++ /dev/null @@ -1,136 +0,0 @@ -# RabbitMQ Test Suite - -This directory contains comprehensive tests for different RabbitMQ exchange types and patterns. - -## Test Files - -### Individual Test Files - -1. **`run_fanout_test.py`** - Tests Fanout Exchange - - Broadcasts messages to all bound queues - - Demonstrates one-to-many messaging pattern - - Run: `python run_fanout_test.py` - -2. **`run_direct_test.py`** - Tests Direct Exchange - - Routes messages based on exact routing key matches - - Demonstrates selective message routing - - Run: `python run_direct_test.py` - -3. **`run_topic_test.py`** - Tests Topic Exchange - - Routes messages using wildcard patterns (* and #) - - Demonstrates hierarchical message routing - - Run: `python run_topic_test.py` - -4. **`run_multi_queue_test.py`** - Tests Multi-Queue Load Balancing - - Distributes messages across multiple queues - - Demonstrates load balancing and parallel processing - - Run: `python run_multi_queue_test.py` - -### Combined Test File - -5. **`test.py`** - Runs all tests sequentially - - Executes all exchange type tests in order - - Run: `python test.py` - -## Test Features - -### Producer and Consumer Coordination -- Each test starts consumers in the background -- Producers send messages after consumers are ready -- Tests demonstrate real-time message processing -- Automatic cleanup and task cancellation - -### Message Patterns Tested - -#### Fanout Exchange -- **Pattern**: One-to-many broadcasting -- **Queues**: 3 queues (demo.fanout.queue-0, demo.fanout.queue-1, demo.fanout.queue-2) -- **Behavior**: All queues receive every message -- **Use Case**: Notifications, announcements, logging - -#### Direct Exchange -- **Pattern**: Exact routing key matching -- **Queues**: error, warning, info (with debug routing to info) -- **Behavior**: Messages routed based on exact routing key -- **Use Case**: Log level routing, priority-based processing - -#### Topic Exchange -- **Pattern**: Wildcard pattern matching -- **Queues**: Critical, Success, Failed -- **Behavior**: Messages routed using * and # wildcards -- **Use Case**: Hierarchical event routing, microservice communication - -#### Multi-Queue Load Balancing -- **Pattern**: Round-robin distribution -- **Queues**: 3 balanced queues -- **Behavior**: Messages distributed evenly across queues -- **Use Case**: Horizontal scaling, parallel processing - -## Running Tests - -### Prerequisites -- RabbitMQ server running on localhost:5673 -- Python 3.7+ with asyncio support -- Required packages: aio-pika - -### Individual Test Execution -```bash -# Test Fanout Exchange -python run_fanout_test.py - -# Test Direct Exchange -python run_direct_test.py - -# Test Topic Exchange -python run_topic_test.py - -# Test Multi-Queue Load Balancing -python run_multi_queue_test.py -``` - -### Run All Tests -```bash -python test.py -``` - -## Test Output - -Each test provides detailed output showing: -- Consumer startup messages -- Message reception and processing -- Queue routing behavior -- Message persistence status -- Test completion status - -## Configuration - -Tests use the configuration from `config.py`: -- RabbitMQ URI: `amqp://guest:guest@localhost:5673/` -- Exchange and queue naming conventions -- Message persistence settings - -## Architecture - -### Producer Side -- Sets up exchanges and queues -- Publishes test messages with appropriate routing keys -- Handles connection management - -### Consumer Side -- Starts multiple consumers for different queues -- Processes messages with simulated business logic -- Demonstrates concurrent message handling - -### Test Coordination -- Uses asyncio tasks for concurrent execution -- Implements proper startup/shutdown sequences -- Ensures clean resource cleanup - -## Extending Tests - -To add new test scenarios: -1. Create a new test file following the naming pattern `run_xxx_test.py` -2. Import appropriate producer and consumer functions -3. Implement the test logic with proper async/await patterns -4. Add consumer startup, message publishing, and cleanup phases -5. Update this README with the new test description diff --git a/assert/img.png b/assert/img.png new file mode 100644 index 0000000000000000000000000000000000000000..70f34d94a7a6e3121dff237c321f6c01c78d1c39 GIT binary patch literal 48359 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 CGfrs$ literal 0 HcmV?d00001 diff --git a/assert/img_1.png b/assert/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..767417db14dca21fc03dd1ee9be0c577c2740e33 GIT binary patch literal 49522 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 literal 0 HcmV?d00001 diff --git a/assert/img_2.png b/assert/img_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bb856a38cc2ca69dc4c437a906ee2ab002bf84 GIT binary patch literal 67198 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�@HEOojCeARIow)7XRV#z9XO>bc#I7h~pk@0x!A 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"TEbf(FF1tS|8r`$y?iH>* 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

p~!`-FEj0~ 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ôyu>8= z%WZA)L{+c+xPN$(_Wc+CO%(x5r!s3S>_c}CR$V=3H(*EPWp-1iv&Qnnn_ZrMeg-o= zn`7Igs33A;j-;sEYRx)-=f_TOf7xt9{rrS1^i%}W>DO{pK+buYZ>#VECYd%TOHh; zdd9!PY11G<@T}Rg#eO`+X;|Wz5SCAawi-(`uRgy>b;R->gl@ZR{MA=|%d^Aqr^G+L qHi`)R|@BSU9OMc}5 literal 0 HcmV?d00001 diff --git a/assert/img_5.png b/assert/img_5.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4d91abd0e9cca8ab118fd940d06eab5142b11a GIT binary patch literal 76582 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 literal 0 HcmV?d00001 diff --git a/help.py b/help.py deleted file mode 100644 index 160274e..0000000 --- a/help.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python3 -""" -RabbitMQ Test Help -Shows available test commands and usage information. -""" - -import os -import sys - - -def show_help(): - """Display help information for RabbitMQ tests""" - print("🐰 RabbitMQ Test Suite Help") - print("=" * 50) - - print("\n📋 Available Test Files:") - print("-" * 30) - - test_files = [ - ("run_fanout_test.py", "Test Fanout Exchange (broadcast messaging)"), - ("run_direct_test.py", "Test Direct Exchange (routing by key)"), - ("run_topic_test.py", "Test Topic Exchange (wildcard routing)"), - ("run_multi_queue_test.py", "Test Multi-Queue Load Balancing"), - ("test.py", "Run all tests sequentially"), - ("run_all_tests.py", "Run all individual test files with summary") - ] - - for filename, description in test_files: - exists = "✅" if os.path.exists(filename) else "❌" - print(f"{exists} {filename:<25} - {description}") - - print("\n🚀 Usage Examples:") - print("-" * 20) - print("python run_fanout_test.py # Test fanout exchange") - print("python run_direct_test.py # Test direct exchange") - print("python run_topic_test.py # Test topic exchange") - print("python run_multi_queue_test.py # Test load balancing") - print("python test.py # Run all tests") - print("python run_all_tests.py # Run with detailed summary") - - print("\n📖 Test Patterns:") - print("-" * 20) - print("• Fanout: One-to-many broadcasting") - print("• Direct: Exact routing key matching") - print("• Topic: Wildcard pattern matching (* and #)") - print("• Multi: Round-robin load balancing") - - print("\n⚙️ Prerequisites:") - print("-" * 20) - print("• RabbitMQ server running on localhost:5673") - print("• Python 3.7+ with asyncio support") - print("• aio-pika package installed") - - print("\n📁 File Structure:") - print("-" * 20) - print("product/ - Message producers") - print("comsumer/ - Message consumers") - print("config.py - RabbitMQ configuration") - print("run_*.py - Individual test files") - print("test.py - Combined test runner") - - print("\n🔧 Configuration:") - print("-" * 20) - print("Edit config.py to change:") - print("• RabbitMQ connection URI") - print("• Exchange and queue names") - print("• Message persistence settings") - - print("\n📚 Documentation:") - print("-" * 20) - print("See README_TESTS.md for detailed information") - - -if __name__ == "__main__": - show_help() diff --git a/run_all_tests.py b/run_all_tests.py deleted file mode 100644 index e9b68f0..0000000 --- a/run_all_tests.py +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env python3 -""" -Run All RabbitMQ Tests -This script runs all individual test files in sequence. -""" - -import asyncio -import sys -import os -import subprocess - -# Add current directory to Python path -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - - -def run_test_file(test_file): - """Run a test file and return success status""" - try: - print(f"\n{'='*60}") - print(f"Running {test_file}") - print(f"{'='*60}") - - result = subprocess.run([sys.executable, test_file], - capture_output=True, - text=True, - timeout=30) - - if result.returncode == 0: - print(f"✅ {test_file} completed successfully") - if result.stdout: - print("Output:") - print(result.stdout) - return True - else: - print(f"❌ {test_file} failed with return code {result.returncode}") - if result.stderr: - print("Error:") - print(result.stderr) - return False - - except subprocess.TimeoutExpired: - print(f"⏰ {test_file} timed out after 30 seconds") - return False - except Exception as e: - print(f"💥 {test_file} failed with exception: {e}") - return False - - -def main(): - """Main function to run all tests""" - print("🚀 Starting RabbitMQ Test Suite") - print("This will run all individual test files in sequence.") - - # List of test files to run - test_files = [ - "run_fanout_test.py", - "run_direct_test.py", - "run_topic_test.py", - "run_multi_queue_test.py" - ] - - # Check if test files exist - missing_files = [] - for test_file in test_files: - if not os.path.exists(test_file): - missing_files.append(test_file) - - if missing_files: - print(f"❌ Missing test files: {missing_files}") - sys.exit(1) - - # Run all tests - results = [] - for test_file in test_files: - success = run_test_file(test_file) - results.append((test_file, success)) - - # Wait between tests - if test_file != test_files[-1]: # Don't wait after last test - print("\n⏳ Waiting 2 seconds before next test...") - import time - time.sleep(2) - - # Print summary - print(f"\n{'='*60}") - print("TEST SUMMARY") - print(f"{'='*60}") - - passed = 0 - failed = 0 - - for test_file, success in results: - status = "✅ PASSED" if success else "❌ FAILED" - print(f"{test_file:<25} {status}") - if success: - passed += 1 - else: - failed += 1 - - print(f"\nTotal: {len(results)} tests") - print(f"Passed: {passed}") - print(f"Failed: {failed}") - - if failed == 0: - print("\n🎉 All tests passed!") - sys.exit(0) - else: - print(f"\n💥 {failed} test(s) failed!") - sys.exit(1) - - -if __name__ == "__main__": - main() diff --git a/test.py b/test.py deleted file mode 100644 index 657c33e..0000000 --- a/test.py +++ /dev/null @@ -1,165 +0,0 @@ -import asyncio -import sys -import os - -# Add current directory to Python path -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - -from product.direct_multi_publish import setup_multi_queue_balance, BalancedProducer -from product.direct_publish import setup_direct_exchange, direct_publish -from product.fanout_publish import fanout_publish, setup_fanout_exchange -from product.topic_publish import setup_topic_exchange, topic_publish -from comsumer.direct_consumer import start_all_direct_consumers -from comsumer.fanout_consumer import start_all_fanout_consumers -from comsumer.topic_consumer import start_all_topic_consumers -from comsumer.direct_multi_consumer import start_balanced_consumers - - -async def run_fanout_test(): - """Run fanout exchange test with producer and consumer""" - print("=== Running Fanout Exchange Test ===") - - # Start consumer in background - consumer_task = asyncio.create_task(start_all_fanout_consumers()) - - # Wait for consumer to start - await asyncio.sleep(1) - - # Setup and publish messages - await setup_fanout_exchange("demo.fanout", "demo.fanout.queue-") - await fanout_publish(message="hello world", exchange_name="demo.fanout") - await fanout_publish(message="test message 2", exchange_name="demo.fanout") - await fanout_publish(message="test message 3", exchange_name="demo.fanout") - - # Wait for messages to be processed - await asyncio.sleep(3) - - # Cancel consumer - consumer_task.cancel() - print("✅ Fanout test completed successfully!") - - -async def run_direct_exchange_test(): - """Run direct exchange test with producer and consumer""" - print("=== Running Direct Exchange Test ===") - - # Start consumer in background - consumer_task = asyncio.create_task(start_all_direct_consumers()) - - # Wait for consumer to start - await asyncio.sleep(1) - - # Setup exchange and publish messages - await setup_direct_exchange() - - test_messages = [ - ("System crash, unable to start", "error"), # Route to error queue - ("Disk space insufficient", "warning"), # Route to warning queue - ("User login successful", "info"), # Route to info queue - ("Debug info: Database connection successful", "debug") # Route to info queue - ] - - for msg, routing_key in test_messages: - await direct_publish(msg, routing_key) - await asyncio.sleep(0.5) - - # Wait for messages to be processed - await asyncio.sleep(3) - - # Cancel consumer - consumer_task.cancel() - print("✅ Direct exchange test completed successfully!") - - -async def run_topic_exchange_test(): - """Run topic exchange test with producer and consumer""" - print("=== Running Topic Exchange Test ===") - - # Start consumer in background - consumer_task = asyncio.create_task(start_all_topic_consumers()) - - # Wait for consumer to start - await asyncio.sleep(1) - - # Setup exchange and publish messages - await setup_topic_exchange() - - test_messages = [ - ("Order creation failed (critical error)", "order.create.critical"), - ("User login successful", "user.login.success"), - ("Order payment completed", "order.pay.success"), - ("System crash (critical error)", "system.crash.critical"), - ("User login failed", "user.login.failed"), - ("Normal system log", "system.log.info") # Won't match any binding key, will be discarded - ] - - for msg, routing_key in test_messages: - await topic_publish(msg, routing_key) - await asyncio.sleep(0.5) - - # Wait for messages to be processed - await asyncio.sleep(3) - - # Cancel consumer - consumer_task.cancel() - print("✅ Topic exchange test completed successfully!") - - -async def run_multi_queue_balance_test(): - """Run multi-queue load balancing test with producer and consumer""" - print("=== Running Multi-Queue Load Balancing Test ===") - - queue_count = 3 - - # Start consumer in background - consumer_task = asyncio.create_task(start_balanced_consumers(queue_count=queue_count)) - - # Wait for consumer to start - await asyncio.sleep(1) - - # Setup and publish messages - await setup_multi_queue_balance(queue_count=queue_count) - - producer = BalancedProducer(queue_count=queue_count) - await producer.connect() - - for i in range(10): - await producer.publish(f"Task {i + 1}: Multi-queue load balancing test") - await asyncio.sleep(0.3) - - await producer.close() - - # Wait for messages to be processed - await asyncio.sleep(3) - - # Cancel consumer - consumer_task.cancel() - print("✅ Multi-queue load balancing test completed successfully!") - - -async def main(): - """Main function to run all tests""" - print("🚀 Starting RabbitMQ Tests...") - - try: - # Run all tests - await run_fanout_test() - await asyncio.sleep(1) - - await run_direct_exchange_test() - await asyncio.sleep(1) - - await run_topic_exchange_test() - await asyncio.sleep(1) - - await run_multi_queue_balance_test() - - print("\n🎉 All tests completed successfully!") - - except Exception as e: - print(f"❌ Test failed: {e}") - sys.exit(1) - - -if __name__ == "__main__": - asyncio.run(main())