Like Share Discussion Bookmark Smile

J.J. Huang   2023-10-16   Docker Docker Compose   瀏覽次數:次   DMCA.com Protection Status

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
    15
    version: '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)。
    • 暴露端口56725672(格式為HOST:CONTAINER)。
    • 暴露端口1567215672(格式為HOST:CONTAINER)。

Run & Test

  • 此處是使用瀏覽器開啟rabbitmq-web-ui進行測試。
    1
    http://127.0.0.1:15672
  • 輸入帳號/密碼,guest/guest

    注意:此處的帳號密碼對照docker composeRABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASS環境變數設定。

  • 切換至Queues and Streams頁籤
  • Add a new queue輸入name,並按下Add queue按鈕建立。

    註:此使用test名稱。

  • 點擊剛剛建立testQueue
  • 並進行Publish messageGet messages的操作。

Other Docker Compose List

如需要找尋其他的 Docker Compose ,可以參考Docker Compose - 簡介的分享目錄。


註:以上參考了
Docker
RabbitMQ
stack overflow - Docker RabbitMQ persistency