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
可以看到消息被消费了