学习RocketMQ (一) 安装并且启动MQ quickstart

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

yum install perl-ExtUtils-Embed -y
在执行上面的命令  okay
尝试使用git clone git上面的代码
下面是clone git  最新的代码
$ git clone git://git.kernel.org/pub/scm/git/git.git

4)安装Maven Linux 版本

将官网下载的Maven 移到linux 系统中

vim /etc/profile

MAVEN_HOME=/usr/local/maven/apache-maven-3.5.2
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
 
source /etc/profile
 
输入 mvn -v

好了  终于可以安装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

 vim runserver.sh

然后 运行   成功

看  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

可以看到消息被消费了

原文地址:https://www.cnblogs.com/mythdoraemon/p/7831123.html