CentOS7上從零開始安裝阿里RocketMQ版本:release-4.0.1【親測哈哈】
安裝git
# 更新包
$ yum update
# 安裝git
$ yum install git
# 驗證git安裝成功
$ git --version
# 這樣git即可安裝成功
安裝wget依賴包
# 更新包
$ yum install wget
# 安裝完成后可以使用wget命令
安裝jdk
# 登錄SSH到linux的默認用戶路徑下(我使用的是root用戶)
# 下載JDK:使用官方網站的下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
$ wget http://220.112.193.200/files/9130000004D8B9C4/download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz .
# 轉移到目錄中解壓
$ cp /root/jdk-8u144-linux-x64.tar.gz /usr/local/
# 切換目錄
$ cd /usr/local
# 解壓
$ tar -xvf jdk-8u144-linux-x64.tar.gz
# 創建軟連接將jdk的軟連接到jdk8上
$ ln -s jdk-8u144-linux-x64.tar.gz jdk8
# 進入更目錄修正環境變量
$ vi ~/.bash_profile
# 在尾部添加環境變量如下
JAVA_HOME=/usr/local/jdk8
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
# 使用insert模式,用esc+ ‘:wq’完成編輯,使用source完成編輯
$ source ~/.bash_profile
# 驗證jdk安裝成功
$ java -version
安裝maven
# 登錄SSH到linux的默認用戶路徑下(我使用的是root用戶)
# 下載maven:http://maven.apache.org/download.cgi
$ wget http://211.162.127.22/files/2245000004204200/mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz .
# 移動到目錄中解壓
$ cp /root/apache-maven-3.5.0-bin.tar.gz /usr/local/
# 切換目錄
$ cd /usr/local/
# 解壓
$ tar -xvf apache-maven-3.5.0-bin.tar.gz
# 創建軟連接(將軟連接上maven工程,保證以后改變apache不用改環境變量的配置)
$ ln -s apache-maven-3.5.0/ maven
# 進入更目錄修正環境變量
$ vi ~/.bash_profile
# 在尾部添加環境變量如下
MAVEN_HOME=/usr/local/maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
# 使用insert模式,用esc+ ‘:wq’完成編輯,使用source完成編輯
$ source ~/.bash_profile
# 驗證maven安裝成功
$ mvn -version
安裝RocketMQ
這邊我們使用源碼編譯安裝,參考從github上面拉取源代碼進行編譯,然后使用maven進行編譯
拉取代碼和通過maven進行編譯
# 選擇git代碼下載目錄,拉取源代碼(可以拉取當前最新版本的分支:release-4.1.0-incubating)
$ git clone -b release-4.1.0-incubating https://github.com/apache/incubator-rocketmq.git
# 切換到文件目錄
$ cd incubator-rocketmq
# 使用maven編譯,下載jar包等待編譯成功
$ mvn -Prelease-all -DskipTests clean install -U
# 切換到編譯完成的目錄的bin目錄准備啟動服務器
$ cd distribution/target/apache-rocketmq/bin
啟動名稱服務器(name Server)(可以設置集群)
可以通過命令
vi runserver.sh
修改jvm 配置
# 啟動命令,並且常駐內存
$ nohup sh mqnamesrv &
# 查看啟動日志能看到:The Name Server boot success字樣則成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
啟動Broker(可以設置集群,master,slave)
可以通過命令
vi runbroker.sh
修改jvm 配置
# 啟動命令,並且常駐內存:注意ip地址要配置成為服務的ip地址,保證地址以及端口能夠訪問(官方的有點問題)
$ nohup sh mqbroker -n "192.168.1.113:9876" -c ../conf/2m-noslave/broker-a.properties > broker.out &
# 我啟動的時候報錯了, 原因是對應的runbroker的配置將虛擬機的內存大小設置為4g了,我內存不夠,所以我改成最大2g如下
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"
# 查看啟動日志
$ tail -f ~/logs/rocketmqlogs/broker.log
關閉RcocketMQ相關服務
# 停止broker服務
$ sh mqshutdown broker
# 定制nameserver服務
$ sh mqshutdown namesrv
向MQ發送和接收消息
# 在bin目錄下面執行,將服務器地址引入到環境變量中
$ export NAMESRV_ADDR=192.168.1.113:9876
# 通過java代碼實現的案例生產者生產消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 通過java代碼實現案例消費者消費消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
監控MQ
# 調用命令監控在target的bin目錄下
$ sh mqadmin clusterList -n 192.168.1.113:9876
相關注意事項
本文中的ip地址都是對應的服務器ip地址,
Java代碼中的消費者是不是進程停止的,一直在監聽消費