需要環境:
jdk(1.6+)
git(如果clone源碼,需要git,沒有git直接下載gar包也行)
maven3.x
在安裝之前確定自己已經安裝了jdk:java -version
先獲取recketmq源碼,可以直接從官網下載tar包。下載完之后找個地方解壓。
進入目錄“RocketMQ-3.5.8”
執行 bash install.sh 命令
這步執行完之后會新出來一個devenv文件夾,這個文件夾其實是target/alibaba-rocketmq-broker/alibaba-rocketmq的一個鏈接
配置ROCKETMQ_HOME環境變量,進入devenv文件夾,把當前的目錄設置成ROCKETMQ_HOME變量。也就是:
cd devenv
echo "ROCKETMQ_HOME=`pwd`" >> ~/.bash_profile
source ~/.bash_profile
現在環境已經差不多了,接下來啟動server和broker.
啟動 name server:
bash mqnamesrv
看見”The Name Server boot success. serializeType=JSON“就是已經啟動了。在這里注意:如果jdk是sun jdk,同時也配置了JAVA_HOME,那么現在問題應該不大。如果是openjdk,這個在平時用的時候,不配JAVA_HOME也是可以用的,但是因為rocketmq是純java編的,所以必須配置JAVA_HOME。一般openjdk默認安裝的位置在/usr/lib/jvm/java-8-openjdk-amd64,在這個目錄下看到bin目錄下有javac文件,就說明這就是JDK了。編輯/etc/profile或者/root/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
到這里,環境都准備完畢,就可以正常啟動了。如果執行bash mqnamesrv還是報錯:"Please set the JAVA_HOME variable in your environment, We need java(x64)!"
查看runserver.sh文件:
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
這個位置,沒有用全部注釋掉添加[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64。當然刪了也沒有問題。
效果如下:
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java #[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!" [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
啟動成功后在開一個終端啟動broker:
bash mqbroker -n localhost:9876
如果發現還是有上面的問題,解決辦法一樣,這次是runbroker.sh。
The broker[lizhanhui-Lenovo, 172.30.30.233:10911] boot success. serializeType=JSON and name server is localhost:9876看到這行就已經啟動成功了。為了確認成功也可以查看log,不設置log目錄的話默認在~/logs/rocketmqlogs下。配置文件在解壓RocketMQ3.5.8的config文件夾下。
關閉nameserver、broker命令:
mqshutdown namesrv mqshutdown broker