今天從零開始學習RocketMQ,之前學習過JMS規範以及ActiveMQ相關知識,但總感受RocketMQ給我帶來一種莫名的好感,加上公司目前也在使用RocketMQ,因此,頗有必要學習一波,乘年輕剛入職場,多學點、研究點技術,相信結局老是美好的。linux
本文很簡單,就是基本的windows環境搭建,非集羣版本。請不要問我爲何不在linux上面進行搭建,首先我用不慣虛擬機,第二以前買的阿里雲學生機過時了,賊難受。學會在windows上搭建RocketMQ服務以後,在linux上面搭建也是一樣的步驟和道理的。本文最後還會放出小編在搭建過程當中犯過的錯誤以及解決方法,讓你們能更快地進行服務搭建。apache
首先假設咱們已經對RocketMQ的相關架構有所瞭解,若是你尚未進行了解學習,能夠先到官方網站或者找找博客進行學習。RocketMQ的啓動流程主要有如下幾個步驟:windows
一、啓動命名服務NameServer
bash
二、Broker
的啓動服務器
三、建立Provider
及Consumer
,模擬消息發送接收架構
四、關閉RocketMQ
服務器ide
NameServer
NameServer
的默認啓動類爲:org.apache.rocketmq.namesrv.NamesrvStartup
學習
Broker
的啓動Broker
的默認啓動類爲:org.apache.rocketmq.broker.BrokerStartup
網站
Provider
及Consumer
,模擬消息發送接收生產消息:ui
消費消息:
RocketMQ
服務器先關閉Broker
,而後再關閉名稱服務器。
ROCKETMQ_HOME
,不然報錯.那麼爲何會出現這樣的錯誤呢?很簡單,你打開mqnamesrv.cmd
文件就知道了,裏邊有這麼一段代碼:
if not exist "%ROCKETMQ_HOME%\bin\runserver.cmd" echo Please set the ROCKETMQ_HOME variable in your environment! & EXIT /B 1
複製代碼
若是不存在該環境變量就執行echo
語句。
也就是說你下載完rocketmq壓縮包以後,解壓路徑不能出現相似下面的狀況:
e://Program File/rocketmq
出現空格,會報「找不到主類」的錯誤
搭建rocketmq環境比想象中要簡單,過程當中也踩了兩個坑,在這裏分享一個解決啓動問題的思路,那就是若是你實在找不出問題該如何解決,那麼你能夠嘗試打開cmd
文件,查看源代碼,看看到底啓動的邏輯,問題會清晰不少。
上面也指出了namesrv
和broker
的相關啓動類,全部的啓動過程都在源碼的main()
方法中,能夠進去一探究竟~~