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.pswp.cn/web/90570.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90570.shtml
英文地址,请注明出处:http://en.pswp.cn/web/90570.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FunASR实时多人对话语音识别、分析、端点检测

核心功能:FunASR是一个基础语音识别工具包,提供多种功能,包括语音识别(ASR)、语音端点检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别等。FunASR提供了便捷的脚本和…

opencv--day01--opencv基础知识及基础操作

文章目录前言一、opencv基础知识1.opencv相关概念1.1背景1.2特点1.3主要功能与应用1.4.opencv-python2.计算机中的图像概念2.1图像表示2.2图像存储彩色图像二、opencv基础操作1.图像的读取2.图像的显示3.保存图像4.创建黑白图及随机像素彩图5. 图像切片(图片剪裁&am…

如何撤销Git提交误操作

要撤销在主分支上的 git add . 和 git commit 操作,可以按照以下步骤安全回退: 完整回退步骤: # 1. 查看提交历史,确认要回退的commit git log --oneline# 示例输出: # d3f4g7h (HEAD -> main) 误操作提交 # a1b2c3…

React+Three.js实现3D场景压力/温度/密度分布可视化

本文介绍了一个基于React和Three.js的3D压力可视化解决方案,该方案能够: 加载并渲染3D压力模型数据 提供动态颜色映射功能,支持多种颜色方案:彩虹-rainbow,冷暖-cooltowarm,黑体-blackbody,灰度-grayscale 实现固定位置的颜色图…

Go 官方 Elasticsearch 客户端 v9 快速上手与进阶实践*

1、为什么选择 go-elasticsearch? 版本同步:与 Elasticsearch 主版本保持一一映射,当前稳定分支为 v9,对应 ES 9.x 系列。(GitHub)完全覆盖 REST API:所有 HTTP 端点都有等价方法,避免手写 JSON/HTTP。可插…

`/etc/samba/smb.conf`笔记250720

/etc/samba/smb.conf笔记250720 /etc/samba/smb.conf 是 Samba 服务的核心配置文件,用于实现 Linux/Unix 与 Windows 系统间的文件和打印机共享。以下详解其结构和常用参数: 配置文件结构 1. 全局设置段 [global] 控制 Samba 服务器的整体行为。 …

Java从入门到精通!第十六天,重点!(多线程和线程池)

一、多线程1.基本概念(1)程序(Program):为了完成特定的任务,用某种计算机语言编写的一组指令的集合,即指一段静态的代码(源代码经编译之后形成的二进制格式的文件&#x…

轨道交通为什么要有信号系统?

轨道交通为什么要有信号系统?轨道交通信号系统与公路信号系统有什么不同? 在轨道交通中信号系统是必不可少的,其根本原因在于:在轨道交通中已经没有办法纯靠人力去保证行车安全。 在公路交通中,信号其实是起辅助作用的…

docker 挂载卷

以下是针对您遇到的问题分步解答和解决方案:一、核心结论 ✅ 可以采用目录方式:您的命令中的 -v /root/nginx05-vol/:/usr/share/nginx/html/ 是正确的目录挂载语法。 ❌ 看不到新文件的可能原因主要集中在 权限问题、缓存机制 或 操作顺序错误 上。二、…

uniapp 报错 Not found ... at view.umd.min.js:1的问题

问题描述: uniapp的app中,当页面中使用多个v-if后会出现这个报错解决方案: 1、在v-if的地方加上key属性(key属性要保证唯一) 2、用v-show替换v-if(不建议,可能会影响业务)

水电站自动化升级:Modbus TCP与DeviceNet的跨协议协同应用

水电站的自动化系统就像一个精密的“神经中枢”,既要应对水流变化带来的动态负载,又得保证闸门启闭、水轮机调节等关键动作的精准性。我们去年参与的某水电站改造项目里,就遇到了一个典型问题:中控室的施耐德PLC采用Modbus TCP协议…

基于Matlab图像处理的火灾检测系统设计与实现

随着计算机视觉技术的快速发展,基于图像处理的火灾检测系统在安全监控领域的应用得到了广泛关注。本文提出了一种基于图像处理的火灾检测系统,该系统通过对图像进行预处理、颜色空间转换、阈值化处理和形态学分析,自动检测火灾疑似区域。首先…

信息学奥赛一本通 1593:【例 2】牧场的安排 | 洛谷 P1879 [USACO06NOV] Corn Fields G

【题目链接】 ybt 1593:【例 2】牧场的安排 洛谷 P1879 [USACO06NOV] Corn Fields G 【题目考点】 1. 状压动规 【解题思路】 集合状态:n个元素中,选择x个元素构成的集合,可以由一个n位二进制数表示。第i位为1表示选择第i个元…

SpringBoot创建项目的方式

一、Idea Spring initializr创建(Spring 官网下载) Spring官网只支持SpringBoot3.0以上,JDK17以上 二、idea Spring inst创建(阿里云下载) 阿里云可以支持JDK8的版本 Spring版本选择2.7.6,选择合适的依赖添…

云原生 —— K8s 容器编排系统

一、 简介Kubernetes,也称为K8s,是一个开源的容器编排系统,用于自动部署、扩展和管理容器化应用程序,帮助开发者更高效地跨集群管理应用。本文总结了 k8s 的基础概念和技术架构。二、基础概念1. 云原生(Cloud Native…

SQLite中SQL的解析执行:Lemon与VDBE的作用解析

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 在 SQLite 的内部实现中,SQL 语句的解析与执行是一个精妙的过程,涉及词法分析、语法分析、中间代码生成与执行等多个环节。其中,Lemon 工具和 VDBE(Virtual Database Engine…

C++学习笔记(十:类与对象基础)

往篇内容: C学习笔记(一) 一、C编译阶段※ 二、入门案例解析 三、命名空间详解 四、C程序结构 C学习笔记(二) 五、函数基础 六、标识符 七、数据类型 补充:二进制相关的概念 sizeof 运算符简介 补…

图片查重从设计到实现(4)图片向量化存储-Milvus 单机版部署

Milvus 单机版部署 在 Docker 环境下安装、应用和配置 Milvus 向量数据库可以按照以下步骤进行,涵盖从安装到基础应用的完整流程: 1. 部署前准备 服务器:建议测试环境配置 2 核 CPU、8GB 内存;处理 100 万组向量数据,…

前端版本更新检测机制

📌 一、为什么需要前端版本更新检测机制?在现代 Web 项目中,我们通常会通过 CDN 或缓存策略来加快页面加载速度,但这也带来了一个问题:用户可能访问的是旧版本的页面或资源,而不会自动更新到最新版本。这在…

Python(09)正则表达式

特殊字符 1. 基本元字符 .:匹配除换行符以外的任意单个字符。 *:匹配前面的元素零次或多次。 :匹配前面的元素一次或多次。 ?:匹配前面的元素零次或一次。 2. 定量符 {n}:匹配前面的元素恰好 n 次。 {n,}:…