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