RocketMQ的安装
1. 环境准备
系统环境:Centos7 x64
JDK:jdk-8u171-linux-x64
Maven:3.2.x以上的版本均可
2. 下载RocketMQ
wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
3. 解压
unzip -d /usr/local/
rocketmq-all-4.4.0-source-release.zip
4. 使用MAVEN进行打包
执行mvn打包会下好多的依赖包,这个等待下载完成就好,时间可能会略微长久一点。
cd /usr/local/rocketmq-all-4.4.0/
mvn -Prelease-all -DskipTests clean install -U
cd distribution/target/apache-rocketmq
5. 修改配置
一般到这里按照官方文档是可以启动的,但是最关键的一点,除了上面环境的要求外,还有个硬性要求,就是内存不能低于4G,我又不是什么差钱人,所以我选择把配置改小。
cd bin
vim runserver.sh
# 找到如下配置
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
# 修改成你可以接受的范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx521m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
vim runbroker.sh
# 找到如下配置
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 修改成你可以接受的范围
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
6. 配置环境变量
vim /etc/profile
# 将如下配置加到最后一行
export NAMESRV_ADDR=127.0.0.1:9876
# 使配置生效
source /etc/profile
7. 启动Name Server
nohup sh mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log
8. 启动Broker
nohup sh mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
9. 执行测试
建议分别于不同两个窗口执行以下两个脚本
# 生产者生产消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
# 消费者消费消息
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
10. 关闭服务
sh mqshutdown broker
sh mqshutdown namesrv
可视化服务配置
1. 下载
cd /usr/local/rocketmq
git clone https://github.com/apache/rocketmq-externals
2. 修改配置文件
cd /usr/local/rocketmq/rocketmq-externals/rocketmq-console/src/main/resources
vim application.properties
# 修改如下配置
server.port=8080 // 服务端口号
rocketmq.config.namesrvAddr=127.0.0.1:9876 // 配置服务地址
rocketmq.config.dataPath=/tmp/rocketmq-console/data // mq数据路径,可以自己修改
3. 使用maven打包
cd /usr/local/rocketmq/rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true
4. 运行
java -jar rocketmq-console-ng-1.0.0.jar --server.port=8080 --rocketmq.config.namesrvAddr=127.0.0.1:9876
5. 访问web http://ip:端口号
我的是 http://192.168.0.180:8080
emm,说一下,这里有个小坑。
在打包的时候,可能会报出找不到4.4.0-SNAPSHOT.jar这个jar包。根据多方调查,4.4.0已经发布,没有SNAPSHOT版本了,所以需要去更改POM文件中的版本号。
把下面的<rocketmq.version>4.4.0-SNAPSHOT</rocketmq.version>去掉SNAPSHOT即可。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
<guava.version>16.0.1</guava.version>
<commons-digester.version>2.1</commons-digester.version>
<commons-lang.version>2.6</commons-lang.version>
<commons-io.version>2.4</commons-io.version>
<commons-cli.version>1.2</commons-cli.version>
<rocketmq.version>4.4.0</rocketmq.version>
<surefire.version>2.19.1</surefire.version>
<aspectj.version>1.6.11</aspectj.version>
<main.basedir>${basedir}/../..</main.basedir>
<docker.image.prefix>styletang</docker.image.prefix>
</properties>