1.使用RocketMQ 的 軟件要求
64bit OS, Linux/Unix/Mac is recommended;
64bit JDK 1.8+;
Maven 3.2.x
Git
1)安裝Linux
下載VMWare
下載CentOS
安裝 沒有什么特別注意的
2) Linux 下面安裝Java
在Oracle官網上面下載Java 的Linux版本
解壓 后配置環境變量
vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8.0_151 #注意這里換成你的jdk目錄
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH=${JAVA_HOME}/bin:$PATH
export JAVA_HOME JRE_HOME PATH CLASSPATH
使之生效
source /etc/profile
查看環境變量
[root@localhost java]# echo $PATH
/usr/local/java/jdk1.8.0_151/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myth/bin
然后輸入Java -version
bash: /usr/local/java/jdk1.8.0_151/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
解決方案:
sudo yum install glibc.i686命令安裝好glibc
[root@localhost lib]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) Client VM (build 25.151-b12, mixed mode)
安裝成功
3)安裝git Linux版本
①安裝curl,zlib,openssl,expat,libiconv
Git 的工作需要調用 curl,zlib,openssl,expat,libiconv 等庫的代碼,所以需要先安裝這些依賴工具
yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
②下載源碼
之后,從下面的 Git 官方站點下載最新版本源代碼:
http://rocketmq.apache.org/docs/quick-start/
③ 移動到Linux 盤中
我創建了一個文件夾 mkdir -p /usr/local/git
移動到這里 mv /home/myth/Desktop/git-2.9.5/ /usr/local/git/ #注意這里你應該寫你自己的版本號 和 地址
④編譯並且安裝
$ cd git-2.9.5
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
安裝過程中出現如下錯誤,說明少了依賴
Can't locate ExtUtils/Embed.pm in @INC (@INC contains: /usr/local/lib64/perl5
使用如下命令:
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
4)安裝Maven Linux 版本
將官網下載的Maven 移到linux 系統中
vim /etc/profile

好了 終於可以安裝MQ 了。
2.安裝MQ
1) 克隆MQ
git clone -b develop https://github.com/apache/rocketmq.git
2)編譯
mvn -Prelease-all -DskipTests clean install -U
出現如下錯誤, 可以看到 再跑rocketmq-remoting:jar:4.2.0-SNAPSHOT 沒有找到io.netty:netty-tcnative:jar:linux-x86_32:1.1.33.Fork22 對於加上了linux-x86_32 這一串 字段感覺到奇怪
[ERROR] Failed to execute goal on project rocketmq-remoting: Could not resolve dependencies for project org.apache.rocketmq:rocketmq-remoting:jar:4.2.0-SNAPSHOT: Could not find artifact io.netty:netty-tcnative:jar:linux-x86_32:1.1.33.Fork22 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
到POM 中尋找發現classifier 字段,應該他就是罪魁禍首,去掉之后就好了
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative</artifactId>
<version>1.1.33.Fork22</version>
<classifier>${os.detected.classifier}</classifier>
</dependency>

Build Success
3)開啟NameServer
nohup sh bin/mqnamesrv &
啊! 看來是好事多磨啊,
虛擬機內存太大,去 jvm 中修改xms

然后 運行 成功
看 log
tail -f ~/logs/rocketmqlogs/namesrv.log
同樣的方法 修改runbroker
這樣子 Broker 就 跑起來了
Test Send & Receive Message
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
可以看到消息生產出來了
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
可以看到消息被消費了