一、步驟
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,包括了上面一條信息):