一、RocketMQ及虛擬機環(huán)境搭建

一、環(huán)境清單

? ? 想系統(tǒng)學習下RocketMQ,所謂萬事開頭難,環(huán)境跑起來再說。

? ? 虛擬機:VirtualBox

? ? ? ? 最好不要用 網(wǎng)絡地址轉(zhuǎn)換(NAT)端口轉(zhuǎn)發(fā) 模式,RocketMQ在程序訪問的時候只需要填寫一個NameSrv地址,但是會從NameSrv拿Broker的地址(Broker端口10911,假如本機地址 10.10.1.22,虛擬機地址10.10.1.23,你的端口映射:10.10.1.22:10911 -> 10.10.1.23:10911,很不幸,RocketMQ會拿到10.10.1.23:10911去嘗試連接Broker,這必然是連接不上的,而且MQ報錯信息也很簡單粗暴,后面也會經(jīng)常遇到:No route info of this topic XXX

? ? 操作系統(tǒng):Ubuntu 18.04

? ? JDK:1.8?

????????之前采用的JDK12,坑比較多,JDK12對JVM部分做了調(diào)整,RocketMQ提供的配置是基于JDK1.8的,改了半天也沒有弄好????

? ? RocketMQ:4.4.0

? ? 搭建很簡單,裝好JDK,配置好環(huán)境變量,然后啟動NameSrv及Broker

? ? Rocket目錄:~/soft/rocketmq-all-4.4.0-bin-release,之后的命令都是在這個目錄下執(zhí)行的

? ? 虛擬機IP:10.1.11.115


二、RocketMQ啟動/驗證/關閉

? ? 1、啟動Name Server:

????????????nohup sh bin/mqnamesrv -n 10.1.11.155:9876 &

? ? ? ????? 啟動成功后日志顯示:The Name Server boot success. serializeType=JSON

? ? 2、啟動Broker:

????????????nohup? sh bin/mqbroker -n 10.1.11.155:9876 -c conf/broker.conf autoCreateTopicEnable=true &

? ? ? ? ? ? 啟動成功后日志顯示:

????????????The broker[broker-a, 10.1.11.155:10911] boot success. serializeType=JSON and name server is 10.1.11.155:9876

? ? ? ? ? ? 注意斜體部分的配置文件:broker.conf?需要新增三行配置:

? ??????????????

broker.conf

? ? ? ? ? ? 第一行指定Name Server地址,第二行及第三行執(zhí)行Broker的地址,為啥有倆,據(jù)說有一個是給VIP通道用的,注意這里用的IP都是具體的IP,建議不要使用 localhost 或者 127.0.0.1,不然有可能出現(xiàn)?No route info of this topic XXX

? ??????????autoCreateTopicEnable 這個屬性,允許自動創(chuàng)建topic,我配置了這個,沒有毛線用處,沒有深究,都是手工創(chuàng)建的Topic,創(chuàng)建及查看Topic的cmd命令如下:

? ? ? ? ? ? 創(chuàng)建:sh bin/mqadmin updateTopic -n namesrv地址 -b broker地址 -t topic名稱

? ? ? ? ? ? 示例:sh bin/mqadmin updateTopic -n 10.1.11.115:9876 -b 10.1.11.115:10911 -t asdTopic

? ? ? ? ? ? 查看所有信息,含Topic :sh mqadmin topicList -n

? ?3、驗證

? ? ? ? ? ? NameServer 及 Broker啟動完畢后,可以用自帶的Tools模擬Producer及Consumer,命令如下:

? ??????????首先要執(zhí)行 export NAMESRV_ADDR=10.1.11.155:9876,告訴 Producer 和 Consumer Name Server 的地址

????????????啟動Producer,該Producer會產(chǎn)生一批數(shù)據(jù)推送到MQ

????????????命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

????????????最后啟動Consumer接收Producer發(fā)送的消息

????????????命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

? ? 4、關閉服務

? ??????關閉 broker :sh bin/mqshutdown broker

????????關閉 name server:sh bin/mqshutdown namesrv


? ? ????這一篇主要是MQ的搭建及基礎驗證,參考?http://rocketmq.apache.org/docs/quick-start/,下一篇主要是通過JAVA模擬Producer及Consumer。

????????? ??

? ??

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容