RocketMQ安裝
官網: quick-start
受眾
本文檔要求讀者有一定的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
筆者的環境:
- ubuntu-14.04.6-server-amd64
- java version 1.8.0_141
一、RocketMQ安裝
安裝必要軟件
安裝 jdk:
sudo apt-get update sudo apt-get install default-jdk
安裝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"
啟動name server
nohup sh bin/mqnamesrv & tail -f ~/logs/rocketmqlogs/namesrv.log
啟動 broker
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控制台
文檔地址: 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
DEMO
TODO: github link