【引言】
前段时间在项目中添加了对接RocketMQ4.5.1版本的客户端代码,服务端不是自己搭建的,所以自己在虚拟机上试验了一把,过程中遇到不少问题,写篇博客记录一下。
【环境】
- Java版本:java version “1.8.0_162”
- Maven版本:Apache Maven 3.5.0
- RocketMQ版本:rocketmq-rocketmq-all-4.5.1
- 下载压缩包,下载地址:https://github.com/apache/rocketmq/releases/tag/rocketmq-all-4.5.1
- 解压文件并构建
官网上提供了zip和tar.gz,两种格式的压缩文件任选一种即可- 解压zip格式文件
unzip rocketmq-all-4.3.1-source-release.zip -d /usr/local/rocketmq/-若提示未安装unzip命令,执行yum install zip 和 yum install unzip命令即可- 解压tar.gz格式文件
tar -zxvf rocketmq-rocketmq-all-4.5.1.tar.gz -C /usr/local/rocketmq/- 解压后执行maven命令构建
mvn -Prelease-all -DskipTests clean install -U
构建成功,提示如下:
文章图片
进入到目录
cd distribution/target/rocketmq-4.5.1/rocketmq-4.5.1
- 启动NameServer
nohup sh bin/mqnamesrv &若上述命令错误,可使用:
nohup sh bin/mqnamesrv>/dev/null 2>&1 &查看日志命令,是否启动成功:
tail -f ~/logs/rocketmqlogs/namesrv.log或使用jps,NamesrvStartup存在,则表示启动成功:
7984 NamesrvStartup
8395 Bootstrap
14059 Jps
- 启动broker
nohup sh bin/mqbroker -n localhost:9876 &查看日志,是否启动成功:
tail -f ~/logs/rocketmqlogs/broker.log或使用jps,BrokerStartup存在,则表明启动成功:
8019 BrokerStartup
8395 Bootstrap
14059 Jps
- 关闭服务器命令
sh bin/mqshutdown broker//停止 broker
sh bin/mqshutdown namesrv//停止 nameserver
【【架构设计】|【安装教程】Linux RocketMQ 4.5.1安装及问题总结】【控制台】
为了方便查看生产者、消费者及消息信息,我们可以再安装一个控制台,可在页面上操作。
- 下载地址:
https://github.com/apache/rocketmq-externals
- 下载好后,解压,进入 rocketmq-console/src/main/resources,修改对应的配置文件信息:
server.contextPath=/rocketmq-console
server.port=8090#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.namesrvAddrNAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
#修改为自己的namesrv地址信息
rocketmq.config.namesrvAddr=192.168.17.141:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
#配置为true,启动broker需要配置对应的ip地址
rocketmq.config.isVIPChannel=true
- 进入 rocketmq-console目录打包,命令如下:
mvn clean package -Dmaven.test.skip=true
文章图片
- 打包成功后,直接在target目录下执行java -jar rocketmq-console-ng-1.0.1-sources.jar命令,启动
- 若安装成功,页面显示如下:(若启动成功,但访问不到,则可能是防火墙问题,下面问题中会提到)
文章图片
【问题】
- 在启动Broker时,查看日志,提示内存不足,查看bin目录下的runserver.sh 和 runbroker.sh文件,可以看到默认的内存大小,都比较大,我们自己修改小一些即可:
文章图片
- 防火墙问题,安装好控制台后,本机访问不到,因为虚拟机开了防火墙,我们可以将其关闭,或设置对某些端口开放,常用命令如下:
- 查看firewall服务状态 systemctl status firewalld- 查看firewall的状态 firewall-cmd --state- 开启、重启、关闭、firewalld.service服务 # 开启
service firewalld start # 重启
service firewalld restart # 关闭
service firewalld stop- 查看防火墙规则 firewall-cmd --list-all- 查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp # 开放80端口
firewall-cmd --permanent --add-port=80/tcp # 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload # 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
【总结】
服务端安装成功了,并不意味着在客户端对接中就能顺利进行了。下篇博客,将总结springboot与rocketmq-client 4.5.1版本的集成,其中遇到一些问题,是需要修改服务端的一些配置处理的。
推荐阅读
- 数据结构和算法|LeetCode 的正确使用方式
- #|7.分布式事务管理
- #|算法设计与分析(Java实现)——贪心算法(集合覆盖案例)
- #|算法设计与分析(Java实现)—— 动态规划 (0-1 背包问题)
- #|阿尔法点亮LED灯(一)汇编语言
- #|Multimedia
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- 基础课|使用深度优先搜索(DFS)、广度优先搜索(BFS)、A* 搜索算法求解 (n^2 -1) 数码难题,耗时与内存占用(时空复杂度)对比(附((n^2 - 1) 数码问题控
- #|学习笔记 | Ch05 Pandas数据清洗 —— 缺失值、重复值、异常值
- win10|搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。