全部產品
Search
文件中心

Elastic Compute Service:部署開源的RabbitMQ

更新時間:Jun 19, 2024

RabbitMQ是一款開源訊息佇列系統,支援多種協議(AMQP、MQTT、STOMP、HTTP/WebSockets),具有良好的易用性、擴充性和高可用性。主要用於在分布式系統中協調和管理通訊,通過非同步訊息傳遞提高系統的解耦性、伸縮性、並發處理能力和容錯性。其穩定的效能、豐富的功能集以及活躍的社區支援,廣泛應用於企業級應用的訊息傳遞和任務處理。本文介紹如何在Elastic Compute Service中部署開源的RabbitMQ。

操作步驟

  • 手動部署:適合對Linux命令有基本瞭解的使用者,能夠自訂部署RabbitMQ。

  • 快速部署:通過雲市場鏡像快速部署,省去了安裝配置RabbitMQ的過程,大大節省了部署時間。所使用的雲市場鏡像是否收費,以雲市場鏡像介面為準。

手動部署RabbitMQ(Ubuntu&Debian

本操作以安裝最新版RabbitMQ為例進行說明,更多版本及安裝方式,請參見Installing RabbitMQ

前提條件

手動部署RabbitMQ時,請確保已建立ECS執行個體,並滿足以下條件:

  • 執行個體已指派公網IP地址或綁定Elastic IP Address(EIP)。具體操作,請參見綁定EIP

  • 作業系統:Ubuntu 20.04、Ubuntu 22.04、Debian 11.0~Debian 12.5。

    更多支援的系統及安裝方式,請參見Installing RabbitMQ

  • 安全性群組規則:安全性群組規則入方向需允許存取22、80、15672連接埠。

    說明

    如果需要通過MQ工具串連RabbitMQ伺服器,還需允許存取5672連接埠。

操作步驟

  1. 遠端連線需要部署RabbitMQ的執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

  2. 安裝RabbitMQ。

    1. 安裝RabbitMQ基本依賴。

      sudo apt-get install curl gnupg apt-transport-https -y
    2. 下載RabbitMQ和Erlang的GPG公開金鑰,並將公開金鑰資訊添加到系統的信任密鑰環中。

      curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
      curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
      curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.9F4587F226208342.gpg > /dev/null
    3. 將RabbitMQ和Erlang的官方APT倉庫添加到/etc/apt/sources.list.d/rabbitmq.list檔案中。

      sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
      deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
      deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
      deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
      deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
      deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
      deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
      deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
      deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
      EOF
    4. 更新本地的包索引。

      sudo apt-get update -y
    5. 安裝Erlang相關的各種包。

      sudo apt-get install -y erlang-base \
                              erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
                              erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
                              erlang-runtime-tools erlang-snmp erlang-ssl \
                              erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl
    6. 安裝RabbitMQ。

      sudo apt-get install rabbitmq-server -y --fix-missing
  3. 配置RabbitMQ。

    1. 設定RabbitMQ開機自啟動並啟動RabbitMQ。

      sudo systemctl enable rabbitmq-server
      sudo systemctl start rabbitmq-server
    2. 為保證資料安全,建議您運行以下命令,刪除預設使用者。

      RabbitMQ預設的帳號使用者名稱和密碼都是guest

      sudo rabbitmqctl delete_user guest
    3. 建立RabbitMQ管理使用者。

      1. 建立一個新使用者。

        sudo rabbitmqctl add_user <使用者名稱> <密碼>

        其中,<使用者名稱><密碼>為您自訂的資訊。

      2. 將建立的新使用者佈建為管理員。

        sudo rabbitmqctl set_user_tags <使用者名稱> administrator
      3. 賦予新建立的使用者所有許可權。

        sudo rabbitmqctl set_permissions -p / <使用者名稱> ".*" ".*" ".*"
  4. 啟動RabbitMQ的Web管理介面。

    sudo rabbitmq-plugins enable rabbitmq_management
  5. 在本地瀏覽器中,輸入http://<Linux執行個體的公網IP>:15672

    顯示如下頁面,說明RabbitMQ安裝成功。RabbitMQ登入頁

  6. 輸入已建立的RabbitMQ管理使用者名和密碼後,單擊Login,進入RabbitMQ管理介面。

    RabbitMQ管理介面展示資訊如下所示:RabbitMQ首頁

快速部署RabbitMQUbuntu,使用雲市場鏡像

說明

你也可以使用計算巢快速部署RabbitMQ,計算巢可以觸發自動化部署流程,您無需學習複雜的部署手冊,上手門檻低。

  1. 單擊 Cloud Native MQ for Apache RabbitMQ進入鏡像詳情頁。

    您可以在鏡像詳情頁擷取鏡像資訊以及使用指南。

  2. 單擊Choose Your Plan

  3. 自訂購買頁,根據頁面提示,完成配置項併購買ECS執行個體。

    配置時請注意以下參數,其他配置可以按需選擇。更多參數說明,請參見自訂購買執行個體

    • 鏡像鏡像地區已設定為您購買的鏡像。

    • 公網 IP:選中分配公網 IPv4 地址

    • 安全性群組:安全性群組規則應允許存取22、80、15672。

  4. 擷取RabbitMQ的使用者名稱和登入密碼。

    1. 遠端連線RabbitMQ伺服器。

      具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

    2. 執行以下命令,擷取RabbitMQ的使用者名稱和登入密碼。

      sudo cat /credentials/password.txt

      回顯資訊類似如下所示。

      • rabbitmq_user:RabbitMQ使用者名稱

      • rabbitmq_password:RabbitMQ登入密碼

      • rabbitmq_gui_port:RabbitMQ Web伺服器連接埠

      • rabbitmq_mq_port:RabbitMQ遠端連線連接埠

      • rabbitmq_er_port:RabbitMQ伺服器用於Erlang處理序間通訊的內部連接埠

      • rabbitmq_mqtt_port:RabbitMQ伺服器對外提供MQTT協議服務的監聽連接埠

      image

  5. 在本地瀏覽器中,輸入http://<Linux執行個體的公網IP>:15672

    顯示如下頁面,說明RabbitMQ安裝成功。RabbitMQ登入頁

  6. 在彈出的對話方塊中,輸入使用者名稱和密碼,進入管理頁面。

    image

開源RabbitMQ遷移上雲

如果您希望解決RabbitMQ叢集各種穩定性痛點(例如訊息堆積、腦裂等問題)、並實現高並發、分布式、靈活擴縮容時,您可以將開源RabbitMQ叢集遷移至雲訊息佇列 RabbitMQ 版,具體操作,請參見開源RabbitMQ遷移上雲