RabbitMQ 是一款開源的消息代理中間件,基于 AMQP(高級消息隊列協議)實現,用于在分布式系統中進行異步通信和消息傳遞。它通過將消息的發送者和接收者解耦,提高了系統的可擴展性、可靠性和靈活性。
核心特點
- 多協議支持:不僅支持 AMQP,還兼容 STOMP、MQTT 等多種消息協議。
- 高可用性:支持消息持久化、鏡像隊列和集群部署,確保消息不丟失。
- 靈活路由:通過 Exchange 類型(Direct、Topic、Fanout、Headers)實現復雜的消息路由策略。
- 擴展性:支持橫向擴展節點,提升系統吞吐量。
- 可視化管理:提供直觀的 Web 管理界面,方便監控和配置。
典型應用場景
-
異步任務處理
適用于非實時性業務,如用戶注冊后發送郵件 / 短信通知,通過消息隊列將耗時操作異步化,提升系統響應速度。python
運行
# 示例:用戶注冊后發送郵件通知 def user_register(request):# 處理注冊邏輯user_id = create_user(request.data)# 將郵件任務發送到隊列send_task_to_queue("email_queue", {"user_id": user_id, "template": "welcome"