Docker Compose - RabbitMQ (single)
前言
RabbitMQ是一個開源的消息代理軟件,用於實現異步通信和消息傳遞。它遵循AMQP(高級消息佇列協議)標準,這是一個開放的通信協議,用於消息佇列的管理和消息交換。
主要特點
- 消息佇列: - RabbitMQ允許消息的發送者(生產者)將消息放入佇列,然後由接收者(消費者)從該佇列中獲取消息,實現異步通信。
- 可擴展性: - RabbitMQ支持集群部署,實現高可用性和負載均衡。
- 消息路由: - RabbitMQ具有靈活的消息路由機制,支持多種消息路由模式,包括發布/訂閱和工作佇列。
- 消息持久性: - RabbitMQ可配置以確保消息的持久性,即使伺服器重新啟動也不會丟失。
- 管理界面:提供Web管理界面,用於監控和管理 - RabbitMQ伺服器的佇列、交換機和連接。
應用場景
RabbitMQ廣泛應用於多種場景,包括:
- 微服務架構中的異步通信。 
- 後台任務處理,例如圖像處理和文件處理。 
- 即時通信應用,如聊天和通知系統。 
- 數據分發和日誌處理。 
RabbitMQ為應用程序提供了一個強大的消息傳遞和佇列管理解決方案,有助於實現分布式系統和異步通信。
Docker Compose
- docker-compose.yml説明:1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15version: '3.3' 
 services:
 rabbitmq:
 image: rabbitmq:3.12-management
 hostname: rabbitmq
 container_name: rabbitmq
 environment:
 - RABBITMQ_DEFAULT_USER=guest
 - RABBITMQ_DEFAULT_PASS=guest
 volumes:
 - ./rabbitmq/data:/var/lib/rabbitmq
 - ./rabbitmq/log:/var/log/rabbitmq
 ports:
 - "5672:5672"
 - "15672:15672"- 版本定義為3.3。
- 定義services名稱為rabbitmq。
- 使用rabbitmq:3.12-management映像。
- 主機名稱定義rabbitmq。
- 容器名稱定義rabbitmq。
- 環境變數設定- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
 
- 掛載主機路徑(格式為SOURCE:TARGET)。
- 暴露端口5672、5672(格式為HOST:CONTAINER)。
- 暴露端口15672、15672(格式為HOST:CONTAINER)。
 
- 版本定義為
Run & Test
- 此處是使用瀏覽器開啟rabbitmq-web-ui進行測試。1 http://127.0.0.1:15672 
- 輸入帳號/密碼,guest/guest。注意:此處的帳號密碼對照 docker compose的RABBITMQ_DEFAULT_USER與RABBITMQ_DEFAULT_PASS環境變數設定。
- 切換至Queues and Streams頁籤
- 於Add a new queue輸入name,並按下Add queue按鈕建立。註:此使用 test名稱。
- 點擊剛剛建立test的Queue。
- 並進行Publish message與Get messages的操作。 
Other Docker Compose List
如需要找尋其他的 Docker Compose ,可以參考Docker Compose - 簡介的分享目錄。
註:以上參考了
Docker
RabbitMQ
stack overflow - Docker RabbitMQ persistency

 
		