此次咱們來講說咱們的RocketMQ的安裝和參數配置,先來看一下咱們RocketMQ的提出和應用場景吧。node
早在2009年,阿里巴巴的淘寶第一次提出了雙11購物狂歡節,可是在2009年,服務器沒法承受到大規模的併發,致使了大規模宕機停運,當時仍是IOE的服務架構,也就是沒有咱們的消息隊列中間件,直接由IBM的小型機、Oracle數據庫、EMC存儲設備來提供服務的,可想而知,咱們的大併發場景,IOE是沒法承受的,RocketMQ是由咱們的國內的阿里巴巴在2010年開始由咱們的阿里雲的王堅博士組件團隊,來處理咱們的去IOE服務架構,也就產生了咱們的RocketMQ中間件,經歷了阿里巴巴內部的不斷嘗試和實踐下,在2016年11月,阿里將RocketMQ捐獻給Apache軟件基金會,正式成爲孵化項目,如今已經在咱們Apache軟件基金會畢業了,而且成爲了Apache軟件基金會的頂級項目。可想而知RocketMQ仍是很成熟很可靠的。git
說到這也就是知道了咱們的RocketMQ能夠於咱們的消息中間件來傳遞咱們的消息,還有不少普遍的應用場景,好比咱們的異步處理事件,分佈式事務協調,對於高併發的削峯平谷處理,MQ的思想仍是很出衆的,下面咱們來先一下RocketMQ的安裝吧。github
安裝單機(運行環境JDK版本:1.8.0_221以上)數據庫
1.下載。rocketmq版本:rocketmq-all-4.4.0-bin-release.zip,地址 https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zipapache
2.上傳的到咱們的服務器並解壓。$ unzip rocketmq-all-4.4.0-bin-release.zip (沒有unzip命令的,yum install unzip安裝一下)vim
3.設置環境變量,$ vim /etc/profile,下底部添加以下代碼。centos
export ROCKETMQ_HOME=/usr/local/software/rocketmq-all-4.4.0
export PATH= $ROCKETMQ_HOME/bin:$PATH
保存,並刷新環境變量 $ source /etc/profile服務器
4.修改一下咱們的配置,現有的配置稍微有點坑,不修改配置,可能啓動不成功的。切換到咱們的RocketMQ目錄下,$ vim bin/runbroker.sh 和咱們的$ vim bin/runserver.sh架構
修改成256M便可併發
注意兩個配置都要改runbroker.sh和runserver.sh,這裏我只是根據咱們的虛擬機大小來設置的,生產的環境能夠根據配置自行設置大小。後面會說參數的做用。
4.開啓服務。
啓動nameserver $ nohup sh bin/mqnamesrv -n 120.27.13.177:9876 &
啓動broker
不指定配置文件 $ nohup sh bin/mqbroker -n 120.27.13.177:9876 autoCreateTopicEnable=true & //極力不推薦
指定配置文件 $ nohup sh bin/mqbroker -n 120.27.13.177:9876 -c conf/broker.conf &//修改在配置文件內加入autoCreateTopicEnable=true,否則發送消息會失敗。
5.測試是否成功
$ export NAMESRV_ADDR=120.27.13.177:9876測試發送端,多個能夠用英文,來區別
例如$ export NAMESRV_ADDR = 120.27.13.177:9876,120.27.13.178:9876
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer 測試消費端
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
6.關閉服務
$ sh mqshutdown broker ‐‐關閉broker
$ sh mqshutdown namesrv ‐‐關閉namesrv
總結
上述安裝弄了好幾個小時,日,這個是官方文檔地址:http://rocketmq.apache.org/docs/quick-start/,誰能按照他的說明安裝成功聯繫我一下,反正我是沒有成功
1,可能遇到內存不夠用的狀況,默認配置是8G的...哪來錢買那麼大的服務器。
2,服務啓動nohup sh bin/mqnamesrv -n 120.27.13.177:9876 & 官網說localhost,若是你有多個網卡,你就蒙圈了...
3,官網徹底沒告訴你指定配置文件,也沒說須要配置autoCreateTopicEnable=true,沒有這個你怎麼建立Topic,autoCreateTopicEnable=true意思就是容許建立topic。
說到底就是官網徹底就是坑爹不給力的。
安裝集羣(運行環境JDK版本:1.8.0_221以上)
上面走過來一路的坑,咱們如今來看看集羣時如何配置的吧,這裏捎帶說一下,盡力優先啓動nameserver,而後啓動broker,由於咱們的每個broker服務須要將信息註冊到咱們的nameserver上去的。
2.將每臺服務器上的配置文件複製出來,由於咱們每臺服務器要啓動一個主節點,一個從節點,咱們開始複製命令。
$ cp broker.conf master.conf ###做爲主節點配置
$ cp broker.conf slave.conf ### 從節點配置。
兩臺服務器都要複製。
將master.conf修改,master.conf配置以下:
slave配置以下
記得修改bin下的runserver和runbroker,要不內存又不夠了。
3.啓動
先分別啓動兩臺服務器的nameserver,$ nohup sh bin/mqnamesrv &
啓動broker-master
nohup sh bin/mqbroker -c conf/master.conf &
啓動broker-slave
nohup sh bin/mqbroker -c conf/slave.conf &
4.查查看集羣監控狀態 $ sh mqadmin clusterlist -n 192.168.241.198:9876
總結
這個集羣也不是很順利,搭建了一下午。切記幾個問題,端口別弄重複了,文件保存路徑別重複了,記得互爲主備,有一個小竅門就是,你先配置一個單機,而後測試是否成功了,而後複製配置文件,而後將這些配置文件直接傳到另外一個服務器上,改一下名稱就能夠了(互爲主備那個名稱)。
安裝可視化界面:(一路小坑已踏平)
1.下載,地址:https://github.com/apache/rocketmq-externals/tree/release-rocketmq-console-1.0.0
2.導入咱們的編譯器IDEA或者Eclipse,這個玩意在咱們本地啓動就能夠的。
3.修改配置application.properties,寫入咱們的集羣地址,多個IP用分號分隔。
rocketmq.config.namesrvAddr=114.215.144.143:9876;115.29.149.133:9876
修改pom文件將mq版本修改和咱們集羣的版本一致
<rocketmq.version>4.4.0</rocketmq.version>
4.不知道不少博主怎麼弄的,寫到這了就說能夠啓動了,反正我是報錯了,不知道大家報錯了嗎?至少我單機的時候啓動有一個界面是報錯的。去咱們的集羣服務器。在conf/broker.conf文件添加brokerIP1=115.29.149.133,IP1=當前服務器的的IP地址。
5.啓動走起~!
順帶說一下啊,右上角那個按鈕是調整語言的,我當時沒加brokerIP1時,那個什麼駕駛艙頁面第一個圖表報錯。
一路大坑帶小坑的,都踏平了,弄了兩天多,才弄好,官方文檔.....
過去的這幾天我說了RabbitMQ和RocketMQ的安裝,後續我會逐步去說他們的實際操做,還有一些高級用法,感謝閱讀。
最進弄了一個公衆號,小菜技術,歡迎你們的加入