RocketMQ在線集群安裝(一)


一、步驟

  1、虛擬機安裝CentOS 64位 基礎版

  2、下載安裝jdk並配置

  3、下載並安裝maven

  4、下載並安裝rocketMQ  

  5、啟動rocketMQ

  6、MQ用戶手冊

  7、設置MQ並且創建MQ主題

二、操作

  1、虛擬機安裝CentOS 64位 基礎版  

  (1)下載鏡像文件,在虛擬機中啟動鏡像文件,選擇第一個安裝:

 

       (2)出現以下界面,安裝軟件選擇最小安裝,分區選擇自動分區,網絡連接打開(要不然開機時還要設置,如果連接不上,那么是你的虛擬機的網絡連接有問題),設置完后就開始安裝(下一步還需要設置root密碼)。安裝很快完成,進入系統,此時就是個命令行界面:

 

  2、下載安裝jdk並配置  

    使用yum命令來查找需要安裝的jdk版本,MQ似乎需要jdk1.8的jdk,因此,我選擇了這個jdk:

    接着就使用yum命令來安裝jdk1.8:

    完成安裝后,確認一下,有以下信息出來就說明是對的(否則command not found):

    接着設置環境變量,此時要先確認下jdk是安裝在哪個目錄下,輸入命令java –verbose,一陣信息飄過之后,在最后面會輸出路徑,從而可以找到jdk的路徑:

    接着就是設置profile文件(這個/etc/profile跟~/.bash_profile有什么區別?):

    在最后面加入以下信息,保存后退出(不知道這樣的設置有沒有必要,因為jdk安裝完成后,命令就可以使用了):

    接着使環境變量生效:

  3、下載並安裝maven

    步驟跟2很相似,使用yum list來列出有關maven的相關包,但是發現會列出很多很多的,要下載哪個呢,我也不知道,所以隨手打了個命令: 

    找到並列出了一系列要安裝的包,然后就同意安裝了:

    完成后確認一下:

    這里有個小結:以后想要安裝什么包的時候yum list | grep “包名稱”或者直接yum install “包名稱”

   4、下載並安裝rocketMQ

    完成以上步驟后,就要rocketMQ的安裝了,首先也是yum,但是發現只有 

    我們要安裝rocketMQ,不是acticeMQ,因此就要百度找了,找到官方文檔:http://rocketmq.apache.org/docs/quick-start/,看到先決條件:

    感覺有點不妙:Maven版本不對,不過先放着,看看會出現什么錯誤.git沒有裝,要先裝一個,安裝命令依舊是那個yum(參考第3節小結)……所有准備都做完后,開始下載和安裝,根據官網上的步驟安裝就可以了......(這里省略之后所有)

   5、啟動rocketMQ

    這里的啟動MQ指的是不做任何設置,啟動下MQ(一台master),至少保證能用,並且官網文檔上已經比較清楚的介紹了啟動的命令,我這邊還寫這一節,主要是我在啟動broker的時候出了一個錯誤:

    這個肯定是JVM運行參數沒有配置好,百度了一下才知道要在這兩個地方設置啟動JVM的參數(參考http://blog.csdn.net/zhu_tianwei/article/details/40948447),修改成自己合適的參數就可以了

    開啟完畢檢查一下:

  6、 MQ用戶手冊

     http://files.cnblogs.com/files/chenkaiwei/阿里RocketMQ_用戶指南_V3.2.4_最新版本.pdf

  7、設置MQ並且創建MQ主題

    在啟動MQbroker的時候,需要指定配置文件,其中配置文件一定要包含namesrv這個配置項(筆者之前沒有配置入了坑),如下圖的namesrvAddr配置項(可能不同版本的默認配置不同,但是建議讀者檢查一下,本示例配置文件路徑:rocketMQ/config/2m-noslave/broker-a.properties),配置時不要使用localhost,127.0.0.1,配置完成后,重啟broker(配置在多台分布式部署時詳細說明)。

 

    輸入以下命令驗證broker是否已經正常地掛在本namesrvAddr上了:  

    以上,MQ的配置與啟動就全部完成了,接下來就要入手代碼了,MQ的代碼至少需要知道MQ的group,topic,namesrvAddr,namesrvAddr是配置文件中已經配置了,MQ的group可以隨意寫,只要不等於它默認的MQGroup就行,至於topic,創建或者使用默認都行,那么下面輸入以下指令來獲取默認的topic信息,如下圖所示(下面有些topic是不能被使用的):

     獲取完必要信息之后,就可以寫代碼了,要通過運行,一定要記住關閉服務器上的防火牆(Centos的命令是systemctl stop firewalld.service,其他不同系統有不同的命令):

     運行成功后會在console中打印,這是發送成功的返回結果(發送不成功會報錯,最常見的就是no route info of this topic,到時候讀者一定要好好回顧本章節的內容):

SendResult [sendStatus=SEND_OK, msgId=AC10ED011D4F2A139A554A14F25E0000,offsetMsgId=AC10EDC400002A9F00000000000001E3, messageQueue=MessageQueue [topic=SELF_TEST_TOPIC, brokerName=broker-a, queueId=0], queueOffset=3]

 

    程序運行正常,消息正常發送到MQ上,可以使用以下命令,到服務器段查詢剛出發送到MQ消息(圖中列出了所有已經接受到的Message,包括了上面一條信息):

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM