Linux安装RocketMQ

Linux安装RocketMQ

rocketMQ官方网址

一、准备

1、64位 OS,支持Linux/Unix/Mac 系统(本人选用CentOS)。

2、需要安装 JDK1.8+。

3、Maven 3.2.X 及以上。

4、Git支持(本人选用)。

注:以上为在linux中安装RocketMQ的标准环境。需要注意的是必须证满足1~3的条件。

Git支持只是用作获取RocketMQ项目,同样可以通过其他渠道获取,可以自行选择。

二、安装/编译

1、获取RocketMQ项目

进入 /usr/local/ 目录下。

> cd /usr/local/

使用git命令从github上获取RocketMQ项目源码。

> git clone -b develop https://github.com/apache/rocketmq.git

如果服务器没有安装git命令,可以使用yum命令进行安装。

> yum -y install git

将RocketMQ源码获取到服务器本地之后,直接进 rocketmq 目录,然后对RocketMQ项目进行编译。

> cd rocketmq
> mvn -Prelease-all -DskipTests clean install -U

等待所有项目全部编译成功之后,进入编译后的项目目录apache-rocketmq 中。

> cd distribution/target/apache-rocketmq

至此RocketMQ就已经编译完成。

三、启动

调整内存

RocketMQ分为broker、namesrv两个部分,所以我们要启动着两个部分,RocketMQ服务才能正常使用。

注:使用 pwd 命令查看当前目录是否在 /usr/local/rocketmq/distribution/target/apache-rocketmq中,如果不在则进入该目录。

在服务启动之前我们需要修改一下namesrv和broker启动时所需要的内容空间,当然如果服务器配置很高可以忽略此步骤。

> vi bin/runserver.sh

将内存配置修改为如下大小(可根据服务器配置自行调整)。

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m"

修改 runserver.sh 文件后,继续修改 runbroker.sh 文件。

> vi bin/runbroker.sh

同样将配置修改为如下大小(可根据服务器配置自行调整)。

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"

到此对namesrv和broker的内存调整完成,开始依次启动服务。

启动namesrv

执行如下命令启动namesrv服务,并且指定日志路径(注意不要占用9876端口)。

> nohup sh bin/mqnamesrv > ~/logs/rocketmqlogs/namesrv.log 2>&1 &

执行后查看日志是否执行成功。

> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

执行成功!

启动broker

执行命令启动broker服务,并且指定日志路径。

> nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true > ~/logs/rocketmqlogs/broker.log 2>&1 &

注:命令中 localhost可以更换为namesrv服务所在服务器的IP地址!

服务启动后查看执行执行日志。

> tail -f ~/logs/rocketmqlogs/broker.log 
The broker[%s, xxx.xxx.xxx.xxx:10911] boot success...

如果在使用alibaba的rocketmq-client发送消息是出现发送超时出现如下信息:

com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <xxx.xxx.xxx.xxx:10909> failed

该问题是因为无法连接broker的虚拟地址,这个是否需要我们手动配置brokerIP1的地址。

先首先创建 conf/me_conf/broker.p

mkdir ../conf/me_conf/
sh mqbroker -m >../conf/me_conf/broker.p

然后修改broker.p文件

vi conf/me_conf/broker.p

然后添加如下内容

brokerIP1=192.168.x.x  显示指定为虚拟机的外网IP,不要用localhost和127.0.0.1,因为远程主机会根据brokerIP1指定的地址去访问broker

在启动命令中添加配置文件

nohup sh mqbroker -n localhost:9876 -c conf/me-conf/broker.p autoCreateTopicEnable=true > ~/logs/rocketmqlogs/broker.log 2>&1 &

启动成功!

至此RocketMQ服务就启动成功了。

四、测试

在测试之前我们需要跟启动namesrv和broker之前一样,调整 tools.sh 的内存占用(可根据服务器配置自行调整)。

将tools.sh 中内存配置修改为如下:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m"

在我们发送和接受消息之前需要通知服务我们要监听哪一个台服务器,通过设置 NAMESRV_ADDR 来手动设置监听的IP和端口号。

发送消息(Send Message)

> export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

接收消息(Receive Message)

> export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

至此RocketMQ服务启动完成!

五、关闭

如果想关闭RocketMQ的namesrv和broker服务可以先进入目录 /usr/local/rocketmq/distribution/target/apache-rocketmq 通过命令 mqshutdown 命令来关闭服务。

关闭broker

> sh bin/mqshutdown broker
The mqbroker(xxxxx) is running...
Send shutdown request to mqbroker(xxxxx) OK

关闭namesrv

> sh bin/mqshutdown namesrv
The mqnamesrv(xxxxx) is running...
Send shutdown request to mqnamesrv(xxxxx) OK

至此RocketMQ服务搭建过程就结束了,后期再使用过程中遇到的问题我会不定时更新。

猜你喜欢

转载自blog.csdn.net/baogang409/article/details/78491453