欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

RocketMQ和控制台的安装

时间:2023-05-02
文章目录

1:rocketmq 的安装

1.1:rocketmq 的下载1.2:rocketmq 源码的解压1.3:在Linux上安装Maven:编译使用1.4:编译 rocketmq 项目1.5:修改 runserver.sh 参数1.6:修改 runbroker.sh 参数1.7:启动nameserver1.8:启动 mqbroker1.9:测试消息发送使用`tool.sh`脚本执行测试程序 2:安装过程中错误总结(上面特意走过了大部分,可直接跳到 目录 3)

2.1: 编译时包无法在mirror上找到 提示502错误2.2:发送失败提示connect to null failed2.3: 启动broker失败 Cannot allocate memory2.4:启动broker成功但提示:Failed to obtain the host name2.5: connect to failed。 3:安装 rocketmq console

3.1:下载rocketmq 的扩展包3.2:进行解压 到当前文件夹3.3:进入到 console 文件夹,进行编译3.4:启动控制台3.5:浏览器访问 控制台 1:rocketmq 的安装 1.1:rocketmq 的下载

官方网站:http://rocketmq.apache.org
GitHub 下载:https://github.com/apache/rocketmq

下载完成后,上传到 linux 系统中,我这边是上传到 /home/rocketmq/ 下

1.2:rocketmq 源码的解压

unzip rocketmq-master.zip

解压到当前的文件夹下,查看

1.3:在Linux上安装Maven:编译使用

这一步我以前写过博客,说过,下面贴上链接
Linux下jdk,maven,tomacat和mysql的安装 : https://blog.csdn.net/qq_40230026/article/details/108352990?spm=1001.2014.3001.5501

1.4:编译 rocketmq 项目

进入进入rocketmq主目录编译项目,编译过程中需要几分钟,耐心等待

mvn -Prelease-all -DskipTests clean install -U


编译成功:

来到编译好的文件夹下,在 /rocketmq-master/distribution/target/ 下,能看到编译好的包

cd distribution/target/rocketmq-4.7.1


我一般喜欢在 /usr/local/ 去运行,因此把它移动出来

mv rocketmq-4.7.1 /usr/local/

1.5:修改 runserver.sh 参数

里面默认的参数都很大,如果你的虚拟机分配的内存很小,会报错
进入到rocketmq 的 bin 目录中,先查看 runserver.sh

cd rocketmq-4.7.1/lscd bin/lsvi runserver.sh


查看文件的 jvm 参数,太大了,调小

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:metaspaceSize=64m -XX:MaxmetaspaceSize=100m"

1.6:修改 runbroker.sh 参数

vi runbroker.sh


调小

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

1.7:启动nameserver

bin目录下执行

./mqnamesrv

1.8:启动 mqbroker

bin目录下执行

./mqbroker

1.9:测试消息发送使用tool.sh脚本执行测试程序

在bin目录下执行

./tools.sh org.apache.rocketmq.example.quickstart.Producer

提示如下表示成功

但我在执行时,报错了,内存分配不足:

于是修改 tools.sh 的jvm 参数,同上修改参数

vi tools.sh

修改成下面的参数:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:metaspaceSize=64m -XX:MaxmetaspaceSize=64m"

重新尝试命令

./tools.sh org.apache.rocketmq.example.quickstart.Producer

报错 connect to null failed

原因:不知道nameserver在哪儿

打开tools脚本

vi tools.sh

添加下面的语句

export NAMESRV_ADDR=localhost:9876

保存后再次执行命令

./tools.sh org.apache.rocketmq.example.quickstart.Producer

还是报错

原因是:与刚才启动的broker 有关了找不到 nameServer,需要去nameServer 注册,重启 broker

./mqbroker -n localhost:9876


这里再次执行命令

./tools.sh org.apache.rocketmq.example.quickstart.Producer


执行成功

2:安装过程中错误总结(上面特意走过了大部分,可直接跳到 目录 3) 2.1: 编译时包无法在mirror上找到 提示502错误

**原因:**网络不好或maven仓库服务器出错

重试即可,或者欢迎镜像仓库

2.2:发送失败提示connect to null failed

./tools.sh org.apache.rocketmq.example.quickstart.Producer22:49:02.470 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging frameworkRocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).RocketMQLog:WARN Please initialize the logger system properly.java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed

**原因:**不知道nameserver在哪儿

在tools脚本中添加

export NAMESRV_ADDR=localhost:9876

2.3: 启动broker失败 Cannot allocate memory

**原因:**jvm启动初始化内存分配大于物理内存

[root@node-113b bin]# ./mqbroker -n localhost:9876Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)## There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.# An error report file with more information is saved as:# /usr/local/rocketmq/bin/hs_err_pid1997.log

修改启动脚本中的jvm参数

runbroker.sh broker

runserver.sh nameserver

默认数值给的都很大,改小即可

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:metaspaceSize=64m -XX:MaxmetaspaceSize=100m"

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

2.4:启动broker成功但提示:Failed to obtain the host name

[root@node-113b bin]# ./mqbroker -n localhost:987622:30:42.307 [main] ERROR RocketmqCommon - Failed to obtain the host namejava.net.UnknownHostException: node-113b: node-113b: No address associated with hostnameat java.net.InetAddress.getLocalHost(InetAddress.java:1505) ~[na:1.8.0_181]at org.apache.rocketmq.common.BrokerConfig.localHostName(BrokerConfig.java:189) [rocketmq-common-4.6.1.jar:4.6.1]at org.apache.rocketmq.common.BrokerConfig.(BrokerConfig.java:38) [rocketmq-common-4.6.1.jar:4.6.1]at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:110) [rocketmq-broker-4.6.1.jar:4.6.1]at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:58) [rocketmq-broker-4.6.1.jar:4.6.1]Caused by: java.net.UnknownHostException: node-113b: No address associated with hostnameat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_181]at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_181]at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_181]at java.net.InetAddress.getLocalHost(InetAddress.java:1500) ~[na:1.8.0_181]..、4 common frames omittedThe broker[DEFAULT_BROKER, 192.168.150.213:10911] boot success、serializeType=JSON and name server is localhost:9876

**原因:**无法解析当前的主机名

hosts里添加映射即可

ip地址 node-113b

2.5: connect to failed。

进入到 修改/conf/broker.conf namesrvAddr=服务器外网IP:9876 brokerIP1=服务器外网IP 修改完成后重启 broker, ./mqbroker -n localhost:9876 -c ../conf/broker.conf

3:安装 rocketmq console 3.1:下载rocketmq 的扩展包

gitHub 地址:https://github.com/apache/rocketmq-externals
观察是否有 rocketmq -console ,有的话下载,因为我最近登录,发现找不到了
这里提供一个链接(需要一点积分):https://download.csdn.net/download/qq_40230026/12797346?spm=1001.2014.3001.5503

下载下来,上传到 linux 服务器

3.2:进行解压 到当前文件夹

unzip rocketmq-externals-master.zip

3.3:进入到 console 文件夹,进行编译

cd rocketmq-consolelsmvn clean package -Dmaven.test.skip=true


编译成功后,进入 target 文件夹,能看到一个 springboot jar 包 ,可以将 jar 包移动到 /usr/local/ 下(个人习惯)

cd target/ mv rocketmq-console-ng-1.0.1.jar /usr/local/

3.4:启动控制台

java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876


启动成功,默认是 8080 端口,可修改

3.5:浏览器访问 控制台

浏览器输入 :IP地址:8080
注意:如果无法访问,请注意是否关闭了防火墙

控制台功能自行探索!!!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。