本文档要求读者有一定的linux运维基础,从事Java开发为佳,了解mvn项目构建.
RocketMQ 是由阿里用java语言开发的一款高性能、高吞吐量的分布式消息中间件,于2017年正式捐赠 Apache 基金会并成为顶级开源项目。
官网的描述:
The following softwares are assumed installed:
- 64bit OS, Linux/Unix/Mac is recommended;
- 64bit JDK 1.8+;
- Maven 3.2.x;
- Git;
- 4g+ free disk for Broker server
笔者的环境:
安装 jdk:
sudo apt-get update
复制代码
sudo apt-get install default-jdk
复制代码
或者 Linux安装JDK1.8(wget方式)
安装maven:
sudo apt-get install maven
复制代码
安装git:
sudo apt-get update
sudo apt-get install git
复制代码
下载源码包:
wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip
复制代码
通过maven构建:
unzip rocketmq-all-4.2.0-source-release.zip
cd rocketmq-all-4.2.0/
mvn -Prelease-all -DskipTests clean install -U
cd distribution/target/apache-rocketmq
复制代码
修改默认配置:
开发调试的话,不需要使用太高的配置.默认的配置占用的内存太高.
vim bin/runserver.sh
vim bin/runbroker.sh
vim bin/tools.sh
复制代码
修改JAVA_HOME及Xms,Xmx,Xmn等内存配置,默认最小4G
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
nohup sh bin/mqnamesrv & tail -f ~/logs/rocketmqlogs/namesrv.log
复制代码
nohup sh bin/mqbroker -n localhost:9876 & tail -f ~/logs/rocketmqlogs/broker.log
复制代码
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
复制代码
文档地址: RocketMQ-Console-Ng
拉取源码:
cd /opt
git clone https://github.com/apache/rocketmq-externals.git
复制代码
修改配置:
cd rocketmq-console/src/main/resources
vi application.properties
复制代码
配置文件内容:
将项目使用的rocketmq.config.namesrvAddr配置上去,设置rocketmq.config.isVIPChannel=false
server.contextPath=
server.port=8080
### SSL setting
#server.ssl.key-store=classpath:rmqcngkeystore.jks
#server.ssl.key-store-password=rocketmq
#server.ssl.keyStoreType=PKCS12
#server.ssl.keyAlias=rmqcngkey
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/tmp/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
#set the message track trace topic if you don't want use the default one
rocketmq.config.msgTrackTopicName=
rocketmq.config.ticketKey=ticket
#Must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required
rocketmq.config.loginRequired=false
复制代码
将rocktmq-console打成jar包,得到rocketmq-console-ng-1.0.0.jar:
mvn clean package -Dmaven.test.skip=true
复制代码
运行jar包,启动项目,这里也可以设置rocketmq.config.namesrvAdd:
java -jar rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=182.254.140.224:9876
复制代码
NOTE: 笔者使用的是虚拟机安装,为了方便在宿主机上看到控制台,因此,笔者将ubuntu的防火墙关闭. 命令:
sudo ufw disable
TODO: github link