1RocketMQ简介
RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:
能够保证严格的消息顺序
提供丰富的消息拉取模式
高效的订阅者水平扩展能力
实时的消息订阅机制
亿级消息堆积能力
官网介绍:https://yq.aliyun.com/articles/624207?utm_content=m_1000012577
2 准备工作
本次安装选择在可连外网的本地虚拟机执行第2步,第3步,将编译好的结果(在SVN安装介质有)copy到服务器配置一下即可
2.1安装jdk
https://blog.csdn.net/Shiloh_My/article/details/82911878
https://www.cnblogs.com/pu20065226/p/10730506.html
2.2安装maven
下载源码包
wget http://mirror.bit.edu.cn/apache/maven/binaries/apache-maven-3.2.2-bin.tar.gz
tar -zxvf apache-maven-3.2.2-bin.tar.gz
2.3配置环境变量
以root用户修改/etc/profile,追加
export JAVA_HOME=/usr/local/java/jdk1.8.0_201 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ROCKETMQ_HOME=/home/ap/testapp/software/rocketmq-all-4.2.0/distribution/target/apache-rocketmq MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1 PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH export MAVEN_HOME PATH
配置生效:
source /etc/profile
2.4配置maven镜像
注:保证服务器可以连外网
在镜像连阿里云
[testapp@k8s-node1 /usr/local/maven/apache-maven-3.6.1/conf]$ pwd /usr/local/maven/apache-maven-3.6.1/conf [testapp@k8s-node1 /usr/local/maven/apache-maven-3.6.1/conf]$ cat settings.xml ...... <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
验证maven:
3RocketMQ下载编译
3.1下载rocketmq4.2.0
https://github.com/apache/rocketmq/archive/release-4.2.0.zip下载zip包并上传
或者wget -P /software https://github.com/apache/rocketmq/archive/release-4.2.0.zip -O rocketmq-all-4.2.0-source-release.zip
Wget命令说明-P表示目录没有就创建,-O表示重命名
免编译版本(本文未用):http://mirror.bit.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
3.2编译
unzip rocketmq-all-4.2.0-source-release.zip
cd rocketmq-all-4.2.0
[testapp@k8s-node1 ~/software/rocketmq-all-4.2.0]$ ll 总用量 64 -rw-r--r-- 1 root root 2917 12月 13 2017 1 drwxr-xr-x 4 root root 46 8月 20 19:38 broker -rw-r--r-- 1 root root 997 12月 13 2017 BUILDING drwxr-xr-x 4 root root 46 8月 20 19:38 client drwxr-xr-x 4 root root 46 8月 20 19:37 common -rw-r--r-- 1 root root 1997 12月 13 2017 CONTRIBUTING.md -rw-r--r-- 1 root root 271 12月 13 2017 DEPENDENCIES drwxr-xr-x 2 root root 34 12月 13 2017 dev drwxr-xr-x 6 root root 157 8月 20 19:39 distribution drwxr-xr-x 4 root root 46 8月 20 19:38 example drwxr-xr-x 4 root root 46 8月 20 19:38 filter drwxr-xr-x 4 root root 46 8月 20 19:38 filtersrv -rw-r--r-- 1 root root 11365 12月 13 2017 LICENSE drwxr-xr-x 4 root root 46 8月 20 19:38 logappender drwxr-xr-x 4 root root 46 8月 20 19:38 namesrv -rw-r--r-- 1 root root 168 12月 13 2017 NOTICE drwxr-xr-x 4 root root 46 8月 20 19:38 openmessaging -rw-r--r-- 1 root root 23353 12月 13 2017 pom.xml -rw-r--r-- 1 root root 1524 12月 13 2017 PULL_REQUEST_TEMPLATE.md -rw-r--r-- 1 root root 2426 12月 13 2017 README.md drwxr-xr-x 4 root root 46 8月 20 19:37 remoting drwxr-xr-x 4 root root 46 8月 20 19:38 srvutil drwxr-xr-x 4 root root 46 8月 20 19:38 store drwxr-xr-x 3 root root 74 12月 13 2017 style drwxr-xr-x 4 root root 167 8月 20 19:37 target drwxr-xr-x 4 root root 46 8月 20 19:38 test drwxr-xr-x 4 root root 46 8月 20 19:38 tools [testapp@k8s-node1 ~/software/rocketmq-all-4.2.0]$
[testapp@k8s-node1 ~/software/rocketmq-all-4.2.0]$ pwd
/home/ap/testapp/software/rocketmq-all-4.2.0
mvn -Prelease-all -DskipTests clean install -U
时间会比较长,要去下载相关依赖包
4安装步骤
保证2.3 ROCKETMQ_HOME变量以root用户添加并生效,第4步可以不用root用户如softwareapp
4.1拷贝编译后的文件至服务器
4.2 启动namesrv
nohup sh bin/mqnamesrv &
如果这条命令报错,请使用 nohup sh bin/mqnamesrv >/dev/null 2>&1 &
tail -f ~/logs/rocketmqlogs/namesrv.log
4.3启动broker
nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
5.验证
在发送/接收消息之前,我们需要告诉客户名称服务器的位置。RocketMQ 提供了多种方法来实现这一点。为了简单起见,我们使用环境变量NAMESRV_ADDR
5.1发送
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
5.2 接收
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
6.关闭服务器
sh bin/mqshutdown broker //停止 broker
sh bin/mqshutdown namesrv //停止 nameserver
7.修改内存配置
默认配置太大,top命令下消耗内存太多,可按需求更改
cd /software/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin
使用vim xxx.sh命令进行JVM参数配置修改:
将runbroker.sh的第一个JAVA_OPT改成JAVA_OPT="${JAVA_OPT}
-server -Xms256m -Xmx256m -Xmn128m"
将runserver.sh的第一个JAVA_OPT改成JAVA_OPT="${JAVA_OPT}
-server -Xms128m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=320m"
8.常用命令
查看集群情况 ./mqadmin clusterList -n 192.168.102.84:9876
查看 broker 状态 ./mqadmin brokerStatus -n 192.168.102.84:9876 -b 192.168.102.84:10911 (注意换成你的 broker 地址)
查看 topic 列表 ./mqadmin topicList -n 192.168.102.84:9876
查看 topic 状态 ./mqadmin topicStatus -n 192.168.102.84:9876 -t MyTopic (换成你想查询的 topic)
查看 topic 路由 ./mqadmin topicRoute -n 192.168.102.84:9876 -t MyTopic