rocketmq 單機環境搭建

前言

       最近做項目,boss要求將kafka切換爲rocket mq,玩了一下rocketmq的動態切換。發現rocketmq能力還挺強大的,首先Windows下搭建一套環境。

1. 下載mq

      訪問apache的官網下載rocketmq,目前最新版本是4.5.1,下載bin版本。當然也可以下載source版本自己編譯。

 下載完後,解壓縮

從lib的jar可以看出rocketmq是純java開發的,貌似阿里主要使用java開發。

2. rocketmq架構圖

可以看到rocketmq主要有name server與broker組成,與producer、consumer組成生產者,消費者。name server是無狀態的元數據管理中心集羣,用於替代zookeeper的作用。

2.1 準備

配置JAVA_HOME和ROCKETMQ_HOME

 2.2 啓動name server

執行cmd,cd到bin目錄,執行mqnamesrv,然後?

由於使用CMS回收器,筆者因爲JDK1.8下載需要登錄,搞了一個JDK12,悲劇了

執行 mqnamesrv

linux同理,配置好JAVA_HOME即可,linux命令

nohup ./mqnamesrv &

2.3 執行broker

真正到存儲消息的隊列節點了,啓動broker,這裏自動創建topic,又不是生產,沒必要申請

mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true 

linux,報了內存不足

nohup ./mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true &

居然要8G空間,我汗,我是2G虛擬機

設置一下吧,由於JDK8,需要配置元數據區meta

對runserver.sh 、runbroker.sh啓動腳本中對於內存的限制,比如​改成如下示例:

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn192m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

當然筆者比較拮据,機器好可以配置高點

Linux默認namesrv使用CMS收集器,分配4G

broker使用G1收集器,分配8G,筆者做測試都分配512M,其實namesrv可以配置低一點,比如256M;broker分配高一些,因爲broker負載重,當然做測試就無所謂了,隨時可以調整。

修改後啓動成功

3. rocketmq console

rocketmq有開源的管理端:https://github.com/apache/rocketmq-externals,支持很多功能,最常用的是console

打開rocketmq-console,配置好name server,元數據集羣有broker的信息,producer與consumer也是這裏獲取的。

執行後,訪問:http:localhost:8180/

 還支持中文,良心

總結

搭建rocketmq很簡單,可以看出rocketmq的設計從很多方面延用了kafka的設計。下一章講架構設計與kafka的區別,實戰api。api集成spring boot使用

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章