当前位置: 首页 > news >正文

RocketMQ5.3.1的安装

1、下载安装
RocketMQ 的安装包分为两种,二进制包和源码包。1 下载 Apache RocketMQ 5.3.1的源码包后上传到linux
https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-source-release.zip2 解压编译
$ unzip rocketmq-all-5.3.1-source-release.zip
$ cd rocketmq-all-5.3.1-source-release/
$ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U编译需要好几分钟
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:35 min
[INFO] Finished at: 2024-10-24T11:27:32+08:00
[INFO] -------------------------------------------$ cd distribution/target/rocketmq-5.3.1/rocketmq-5.3.1[root@localhost rocketmq-5.3.1]# pwd
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1
[root@localhost rocketmq-5.3.1]# ls
benchmark  bin  conf  lib  LICENSE  NOTICE  README.md2 修改启动参数
2.1修改broker的运行脚本,内存不够可以适当的修改broker启动参数[root@localhost bin]# pwd
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/bin[root@localhost bin]# vim runbroker.sh
ESC: set number 可以显示行数找到如下参数:-server -Xms8g -Xmx8g 看着改,只要能启动就行
改成 -server -Xms2g -Xmx2g
改成-server -Xms1g -Xmx1g 
改成-server -Xms256m -Xmx256m101 choose_gc_log_directory
103 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"2.2 修改nameServer的运行脚本, 修改89和94行-server -Xms4g -Xmx4g -Xmn2g
看着改,只要能启动就行
改成-server -Xms1g -Xmx1g -Xmn512m
改成-server -Xms2g -Xmx2g -Xmn1g
改成-server -Xms256m -Xmx256m -Xmn128m89       JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"90       JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabl    ed -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"91       JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"92       JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"93     else94       JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"2.3 修改代理的端口默认是8080和8081修改成9080和9081,要不然8080可能会和tomcat的端口冲突
[root@localhost conf]# vi rmq-proxy.json
{"rocketMQClusterName": "DefaultCluster","remotingListenPort": 9080,"grpcServerPort": 9081
}3 修改broker的配置文件,设置可以自动创建主题。
进入conf目录下,修改broker.conf文件[root@localhost conf]# pwd
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/conf[root@localhost conf]# vim broker.conf
autoCreateTopicEnable=trueautoCreateTopicEnable:自动创建主题,不然需要手动创建出来
namesrvAddr:nameSrv地址可以写localhost因为nameSrv和broker在一个服务器,也可以用参数指定4 创建日志目录
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/
mkdir logs5 启动NameServer后台模式启动,进入到bin目录,执行如下命令,如果不想后台启动的话就进入bin目录后./mynamesrv
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/5.1 需要先启动Name Server
nohup sh bin/mqnamesrv > ./logs/namesrv.log &#!/bin/bash
nohup sh bin/mqnamesrv > ./logs/namesrv.log &
nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&
exit 0[root@localhost rocketmq-5.3.1]# nohup sh bin/mqnamesrv > ./logs/namesrv.log &5.2 查看日志
[root@localhost rocketmq-5.3.1]# cat logs/namesrv.logJava HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON, address 0.0.0.0:98766、启动Broker+Proxy
NameServer成功启动后,我们启动Broker和Proxy。这里我们使用 Local 模式部署,即 Broker 和 Proxy 同进程部署
进入到bin目录先启动broker
nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&[root@localhost rocketmq-5.3.1]# nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&也可以指定配置文件-c  conf/broker.conf,用-pc conf/proxyConfig.json来改默认占用的8080和8081端口,改端口看下面的备注。 nohup bin/mqbroker -n 127.0.0.1:9876 -pc conf/proxyConfig.json --enable-proxy &nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&
[root@localhost logs]# cat broker.log
Thu Oct 24 15:17:52 CST 2024 rocketmq-proxy startup successfullyhttp://localhost:9999/rocketmq/send[root@localhost logs]# cat broker.log
Unrecognized VM option 'UseBiasedLocking'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.Jdk21偏向锁被废弃了,移除这个VM参数
打开rocketmq 的/bin/runbroker.sh,移除UseBiasedLocking参数。JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"或许出现的其他问题
RocketMQ连接异常sendDefaultImpl call timeout装并启动好RocketMQ后,在代码中远程连接RocketMQ,报以下错误:org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException:sendDefaultImpl call timeout at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:588)at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1223)at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1173)at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:214)at com.flying.demo.Producer.main(Producer.java:25)这个错误其实是启动RocketMQ的namesrv,broker没有指IP。
假如IP是:192.168.1.135
那么启动namesrv时,用以下方法:
nohup sh bin/mqnamesrv -n "192.168.1.135:9876" &
启动broker时,用以下方法:
修改conf/broker.conf,加入:brokerIP1=192.168.1.135
启动:nohup ./bin/mqbroker -n localhost:9876 -c conf/broker.conf autoCreateTopicEnable=true &备注:启动失败如果是8080端口已经绑定可以修改端口 ========================RocketMQ5.0.0 版本增加了 Proxy 模块,启动时默认会用到 8081 端口,当端口被占用时,broker/proxy 将无法启动,修改 proxy 端口方法如下:(1)在 conf 目录下修改rmq-proxy.json 文件,注意文件格式为 json,所以内容须为 json 格式;private int remotingListenPort = 8080;private Integer grpcServerPort = 8081;{// 代理监听端口"remotingListenPort": 9080,// gRPC服务器端口"grpcServerPort": 9081,// 对应namesr的ip,这个单机的时候可以不用加,集群的没测试过"namesrvAddr":"123.45.67.891:6789;198.76.54.321:6789"
}修改代理的端口默认是8080和8081
[root@localhost conf]# vi rmq-proxy.json
{"rocketMQClusterName": "DefaultCluster","remotingListenPort": 9080,"grpcServerPort": 9081
}=================================================================7. 关闭服务器和开机自启
进入到/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/目录执行sh bin/mqshutdown namesrv
sh bin/mqshutdown broker8 使用代码测试[root@localhost bin]# sh mqadmin updateTopic -n 192.168.150.50:9876 -b 192.168.150.50:10911 -t MyTopic -w 4 -r 4create topic to 192.168.150.50:10911 success.
TopicConfig [topicName=MyTopic, readQueueNums=4, writeQueueNums=4, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false, attributes={}]-n 192.168.150.50:9876:Name Server地址。
-b 192.168.150.50:10911:Broker地址。
-t MyTopic:主题名称。
-w 4:写队列数量。
-r 4:读队列数量。下面的内容还没测试到9 测试
在进行工具测试消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer10 在rocketmq-dashboard查看消息,也可以直接用程序测试1. docker 镜像安装
① 安装docker,拉取 rocketmq-dashboard 镜像
docker pull apacherocketmq/rocketmq-dashboard:latest② docker 容器中运行 rocketmq-dashboard
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.150.50:9876" -p 9999:9999 -t apacherocketmq/rocketmq-dashboard:latest进入容器内部
docker exec -it 05ac89fbf3dd /bin/bash
docker cp 05ac89fbf3dd:/rocketmq-dashboard.jar /=============================================================================================2 rocketmq-dashboard的使用
https://rocketmq.apache.org/zh/docs/deploymentOperations/04Dashboardhttp://192.168.150.50:8001
http://www.lryc.cn/news/599114.html

相关文章:

  • AI小智源码分析——音频部分(一)
  • 医疗数据挖掘Python机器学习案例
  • 【办公类-107-03】20250725通义万相2.1“动物拟人化”视频,优化关键词(图片转视频MP4转gif))
  • 【Qt】QProcess启动第三方程序或脚本失败
  • SQLite Insert 语句详解
  • 深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
  • 传输层协议TCP
  • IT领域需要“落霞归雁”思维框架的好处
  • Cacti 前台命令注入漏洞(CVE-2022-46169)
  • 金仓数据库:融合与智能驱动下的革新与未来
  • Qt XML 与 JSON 数据处理方法
  • InfluxDB Line Protocol 协议深度剖析(二)
  • Qt 拔网线等情况下收不到disconnected()信号
  • 安卓上的迷之K_1171477665
  • Android悬浮窗导致其它应用黑屏问题解决办法
  • 【HarmonyOS】鸿蒙应用开发中常用的三方库介绍和使用示例
  • SpringBoot与ApacheSpark、MyBatis实战整合
  • [python][flask]flask静态资源
  • Spring Boot License 认证系统
  • 从零开始的云计算生活——番外6,使用zabbix对中间件监控
  • [SAP ABAP] 请求释放及传输
  • 二开---01
  • 基于多种主题分析、关键词提取算法的设计与实现【TF-IDF算法、LDA、NMF分解、BERT主题模型】
  • 【vue vapor jsx 未雨绸缪】
  • 篇五 网络通信硬件之PHY,MAC, RJ45
  • 统一调度与编排:构建自动化数据驱动平台
  • 【Java、C、C++、Python】飞机订票系统---文件版本
  • Fluent自动化仿真(TUI命令脚本教程)
  • RCE真实漏洞初体验
  • 制造业低代码平台实战评测:简道云、钉钉宜搭、华为云Astro、金蝶云·苍穹、斑斑低代码,谁更值得选?