新手實戰 RabbitMQ:安裝與 Server 的建立

更新 發佈閱讀 5 分鐘
RabbitMQ 點陣圖風格 by ChatGPT-4o

RabbitMQ 點陣圖風格 by ChatGPT-4o


上篇『新手實戰 RabbitMQ:Producer、Exchange、Queue 和 Consumer 的基本介紹』我們初步認識了 RabbitMQ 的核心部件,本篇我們從安裝到建立 RabbitMQ Server 都會詳細介紹。

以下都會以 Windows 系統來做說明,使用 Linux 或 MacOS 的讀者不用擔心,可以到 RabbitMQ 的官網上,有詳細的安裝流程。


本篇會安裝程式到本地端,如果會使用 Docker 的讀者也推薦用以下的指令直接安裝 :

# latest RabbitMQ 4.x
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4-management

那我們就直接開始吧!在安裝 RabbitMQ 之前必須先安裝 Erlang,因為 RabbitMQ 就是使用 Erlang 語言所開發。首先到 Erlang 官網上下載安裝檔

Erlang 下載頁面

Erlang 下載頁面

再來是安裝 RabbitMQ,到下載頁面取得安裝檔

RabbitMQ 下載頁面

RabbitMQ 下載頁面

點開安裝檔只需要持續下一步就好,記得 Erlang 要先安裝,不然會跳出錯誤。安裝後到 Program Files 內檢查是否正確安裝

Erlang 安裝位置

Erlang 安裝位置

RabbitMQ 安裝位置

RabbitMQ 安裝位置

再來就是加入環境變數,首先在 Windows 設定內搜尋環境變數,點選"編輯系統環境變數"

編輯系統環境變數

編輯系統環境變數

接著點選"環境變數"

環境變數

環境變數

再到下方 Path 的位置雙擊它

Path 設定

Path 設定

最後點選"新增",輸入安裝路徑,如果沒有任何修改的話會類似這樣

C:\Program Files\Erlang OTP\bin
C:\Program Files\RabbitMQ Server\rabbitmq_server-4.1.2\sbin
新增環境變數路徑

新增環境變數路徑

最後點選"確定"後就完成設定了!接著打開任意的 Terminal,檢查是否設定正確,首先檢查 Erlang,輸入指令 erl

檢查設定環境情形 - Erlang

檢查設定環境情形 - Erlang

可以發現進入了 Erlang 的互動式 shell,確認正常後輸入 q(). 離開。接著啟動 RabbitMQ Server,輸入指令

# 開啟 WEB UI 相關套件
rabbitmq-plugins enable rabbitmq_management
# 啟動 Server​
rabbitmq-server​

接著會出現啟動 Server 的資訊,這邊出現了一大串 Error

rabbitmq-server 啟動失敗

rabbitmq-server 啟動失敗

*若讀者成功啟動可以略過這部分

細讀後發現,是因為啟動需要的 Port 被佔用了,先檢查 25672 是被哪個程式佔用

netstat -aon | findstr :25672
Port 佔用情形

Port 佔用情形

知道 PID 之後也可以到系統管理員查看是哪個程式佔用

工作管理員

工作管理員

發現是 Erlang 的程式,有可能是安裝完後自動執行的文件或是曾經開啟沒正確關閉。確認是可以砍掉的程式後,輸入以下指令檢查 erl 有執行那些背景檔

tasklist | findstr /I erl

知道是哪些 PID 之後可以再次回到工作管理員手動刪除,或是執行

taskkill /PID 你的PID /F

刪除後我們再啟動一次 Server,出現 Rabbitmq 經典兔子圖案就是成功啟動

​rabbitmq-server
RabbitMQ Server 啟動

RabbitMQ Server 啟動

接著我們打開瀏覽器輸入

http://localhost:15672/

即可進入登入頁面,帳號密碼預設都是 guest,之後在 Web UI 都可以做更改

登入頁面

登入頁面

RabbitMQ Overview

RabbitMQ Overview


如果想更改預設的 Port(當然沒事不需要亂改),可以遵循以下的操作流程。到 C:\Users\(使用者名稱)\AppData\Roaming\RabbitMQ\ 的路徑下新增"rabbitmq.conf"

新增 rabbitmq.conf

新增 rabbitmq.conf

接著打開該檔案,可使用 Notepad++ 或是 VSCode 之類的文字檔,加上以下的訊息

management.listener.port = 8888

接著重啟

# 常駐背景執行就用 rabbitmq-service start
# 想把 cmd 當成 Server 就使用 rabbitmq-server
rabbitmq-service stop
rabbitmq-service start
RabbitMQ 重啟

RabbitMQ 重啟

再到網頁輸入 "localhost:8888" 即可成功進入 Web UI

Web UI 登入頁面

Web UI 登入頁面


以上內容涵蓋了從 RabbitMQ 安裝到啟動 Server 的完整流程,基本上只要按照步驟操作,就能順利完成安裝。完成安裝後,就可以開始進行實際的應用開發。下篇《新手實戰 RabbitMQ:使用 Python 實作五種常見架構》將接觸到實際應用 RabbitMQ 的層面,我們下篇再見!

留言
avatar-img
留言分享你的想法!
avatar-img
Alan的沙龍
0會員
12內容數
不定期技術文章、旅遊、人生見解分享
你可能也想看
Thumbnail
我們在「【Message Queue - Kafka】串流時代的超入門簡介」有介紹到關於Kafka的基礎概念, 那麼本章節主要著重於生產者(Producer)的面向來細部探討, 看看生產者(Producer)究竟是什麼? 有哪些應該要注意的? 我們今天的主題除了說明生產者(Producer)的
Thumbnail
我們在「【Message Queue - Kafka】串流時代的超入門簡介」有介紹到關於Kafka的基礎概念, 那麼本章節主要著重於生產者(Producer)的面向來細部探討, 看看生產者(Producer)究竟是什麼? 有哪些應該要注意的? 我們今天的主題除了說明生產者(Producer)的
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News