RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

擁抱心中的夢想發表於2018-07-24

今天從零開始學習RocketMQ,以前學習過JMS規範以及ActiveMQ相關知識,但總感覺RocketMQ給我帶來一種莫名的好感,加上公司目前也在使用RocketMQ,所以,很有必要學習一波,乘年輕剛入職場,多學點、研究點技術,相信結局總是美好的。

本文很簡單,就是基本的windows環境搭建,非叢集版本。請不要問我為什麼不在linux上面進行搭建,首先我用不慣虛擬機器,第二之前買的阿里雲學生機過期了,賊難受。學會在windows上搭建RocketMQ服務之後,在linux上面搭建也是同樣的步驟和道理的。本文最後還會放出小編在搭建過程中犯過的錯誤以及解決方法,讓大家能更快地進行服務搭建。

一、windows下RocketMQ服務搭建

首先假設我們已經對RocketMQ的相關架構有所瞭解,如果你還沒有進行了解學習,可以先到官方網站或者找找部落格進行學習。RocketMQ的啟動流程主要有以下幾個步驟:

  • 1、啟動命名服務NameServer

  • 2、Broker的啟動

  • 3、建立ProviderConsumer,模擬訊息傳送接收

  • 4、關閉RocketMQ伺服器

1、啟動命名服務NameServer

NameServer的預設啟動類為:org.apache.rocketmq.namesrv.NamesrvStartup

RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

2、Broker的啟動

Broker的預設啟動類為:org.apache.rocketmq.broker.BrokerStartup

RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

3、建立ProviderConsumer,模擬訊息傳送接收

生產訊息:

RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

消費訊息:

RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

4、關閉RocketMQ伺服器

先關閉Broker,然後再關閉名稱伺服器。

RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

二、相關錯誤及解決方法

  • 1、下載完rocketmq之後必須配置環境變數ROCKETMQ_HOME,否則報錯.

RocketMQ 學習歷程(一)------windows 上搭建rocketmq服務

那麼為什麼會出現這樣的錯誤呢?很簡單,你開啟mqnamesrv.cmd檔案就知道了,裡邊有這麼一段程式碼:

if not exist "%ROCKETMQ_HOME%\bin\runserver.cmd" echo Please set the ROCKETMQ_HOME variable in your environment! & EXIT /B 1
複製程式碼

如果不存在該環境變數就執行echo語句。

  • 2、解壓壓縮包的路徑不能出現空格

也就是說你下載完rocketmq壓縮包之後,解壓路徑不能出現類似下面的情況:

e://Program File/rocketmq

出現空格,會報“找不到主類”的錯誤

三、總結

搭建rocketmq環境比想象中要簡單,過程中也踩了兩個坑,在這裡分享一個解決啟動問題的思路,那就是如果你實在找不出問題該如何解決,那麼你可以嘗試開啟cmd檔案,檢視原始碼,看看到底啟動的邏輯,問題會清晰很多。

上面也指出了namesrvbroker的相關啟動類,所有的啟動過程都在原始碼的main()方法中,可以進去一探究竟~~

相關文章