关于rocketMQ踩坑的那些事

在最近,我所写的这个项目需要使用到rocketMQ,为了图方便我便使用的是Windows版本的,但是在使用的过程中首先是发现无法发送消息出去,报错信息为

org.apache.rocketmq.client.exception.MQClientException: Send [3]
times, still failed, cost [66]ms, Topic: topic, BrokersSent:
[LAPTOP-VDCF1Q80, LAPTOP-VDCF1Q80, LAPTOP-VDCF1Q80] See
http://rocketmq.apache.org/docs/faq/ for further details.

大概意思就是发送过几次都无法发送出去,我在官方文档中发现了有和我这个一样的报错问题提供,

在这里插入图片描述
然后我就根据解决方案一个个进行排查,首先我去修改了配置文件,各种修改都发现没有用,修改了conf中的broker的配置,加了以下这些信息

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876
#Broker 对外服务的监听端口
listenPort=10911
#Broker监听的ip
brokerIP1=127.0.0.1
brokerIP2=127.0.0.1
 
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
 
enablePropertyFilter=true
 
transactionTimeout=3000
transactionCheckMax=5
transactionCheckInterval=2000

然后还是没有用,然后我就怀疑是不是防火墙的问题,然后我把防火墙关闭之后依然无效,然后后面尝试了更换mq的版本,发现依旧不行还是一样的报错,然后到后面发现直接启动不了broker了,都不是发送不了信息的问题了,然后发现由于mq是持久化的保存在磁盘上的,所以要把缓存文件给清楚,就是c盘中的store文件夹整个删除后就可以了,然后启动之后还是发现和最初的报错一样,无法发送信息出去,然后后面就决定要尝试把mq部署到linux上,试试linux上的mq能不能行,然后就先下载了VMware软件,下载过程还是比较顺利的,我是在b站上看的视频中给的链接下载的不是在官网,因为我在官网注册不了账号不知道为什么,然后安装好VMware之后,就安装centos 7,镜像文件的话是在阿里云的镜像网站上直接下载的,速度还是可以的,然后安装centos 7的过程也遇到很多问题,一开始设置错了,导致安装一直卡在 357/1400 到后面直接采用推荐安装,就不自定义安装之后就顺畅很多,但还是卡在 956/1400 然后百度之后发现是需要重新初始化网络环境
以管理员启动cmd后在cmd中输入以下命令
netsh winsock reset
然后就成功安装好了centos 7了,然后为了方便采用第三方软件去链接虚拟机方便操控,一开始我选择了之前使用过的Xshell,然后后面发现无法上传文件,不知道为什么,一开始以为是没有使用root用户,更换为root用户之后还是不行,且还不会显示报错信息或者上传失败的提醒,就直接没有反应,然后我就看了黑马的linux课程,然后就换了 finalshell进行使用,然后这个软件至少会有上传失败的显示,然后我发现上传失败是因为需要使用root用户,且要把链接用户的用户名设置那里也要改为root,然后就可以成功上传文件了,然后使用mq需要先给虚拟机安装jdk1.8以上的版本,然后安装jdk的过程也疯狂踩坑,一开始不知道为什么无法解压下载的jdk的gz压缩包(后面发现是上传的问题,上传的时候可能出现了文件遗失,我觉得是xshell的问题,在我尝试了很多之后都无法安装jdk之后,内心很是崩溃,然后后面我重启了电脑,重启了虚拟机,决定一切重新开始,,这时候发现能够解压了,然后后面配置了环境变量,然后source /etc/profile 还是原本的openJDK,然后我又重新创建了文件夹,重新配置,然后修改了环境变量的配置为:

 export JAVA_HOME=/app/jdk1.8.0_391/

PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin

 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ 

然后再source时就发现安装成功了,
然后后面就是配置mq,也是踩坑不少,
非常感谢一篇文章:CentOS下RocketMQ单机版安装

我一开始也修改了jvm的配置文件,修改了内存大小,但是启动时遇到这个问题
在这里插入图片描述
2023-12-04 19:38:56 INFO ShutdownHook - shutdown hook was invoked, 1 times.

然后我就把 安装文章中说的,把linux的防火墙关掉了,
修改了broker的配置文件,增加了以下代码

namesrvAddr = 127.0.0.1:9876 //之前我设置的是虚拟机的ip地址:9876,就不是本机地址了
autoCreateTopicEnable = true//这个是设置自动创建主题

并且我也在环境变量中添加了 ROCKETMQ_HOME 就是mq的文件路径
最后终于顺利启动mq啦!!,太激动了,idea中链接mq只需要设置 rocketmq.nameServer=虚拟机ip地址:9876 就可以成功使用到linux的mq了,
这一切真的很不容易,我从前一天的下午五点 然后到第二天的晚上八点半才修好,总算成功完结了自己的项目啦!
希望大家都可以修好bug!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/217038.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

水果店怎么做微信小程序_利用微信小程序实现业绩逆袭

标题:水果店如何利用微信小程序实现业绩逆袭? 随着移动支付的普及,微信小程序已经成为商业领域的一个重要工具。对于水果店来说,利用微信小程序可以更好地拓展业务、提高客户满意度,进而实现业绩逆袭。本文将为你揭示…

java连接池 理解及解释(DBCP、druid、c3p0、HikariCP)

一、在Java开发中,有许多常见的数据库连接池可供选择。以下是一些常见的Java数据库连接池:不使用数据库连接池的特性: 优点:实现简单 缺点:网络 IO 较多数据库的负载较高响应时间较长及 QPS 较低应用频繁的创建连接和关…

【Linux下如何生成coredump文件】

一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢&#…

【离散数学】——期末刷题题库(集合)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

成为AI产品经理——模型稳定性评估(PSI)

一、PSI作用 稳定性是指模型性能的稳定程度。 上线前需要进行模型的稳定性评估,是否达到上线标准。 上线后需要进行模型的稳定性的观测,判断模型是否需要迭代。 稳定度指标(population stability index ,PSI)。通过PSI指标,我们可以获得不…

学习率设置(写给自己看)

现往你的.py文件上打上以下代码: import torch import numpy as np from torch.optim import SGD from torch.optim import lr_scheduler from torch.nn.parameter import Parametermodel [Parameter(torch.randn(2, 2, requires_gradTrue))] optimizer SGD(mode…

12.04 二叉树中等题

513. 找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 思路:找到最低层中最左侧的节点值,比较适合层序遍历,返回最…

【matlab】QR分解

QR分解 给定一个mn的矩阵A,其中m≥n,即矩阵A是高矩阵或者是方阵,QR分解将矩阵A分解为两个矩阵Q和R的乘积,其中矩阵Q是一个mn的各列正交的矩阵,即QTQI,矩阵R是一个nn的上三角矩阵,其对角线元素为…

初识动态规划算法(题目加解析)

文章目录 什么是动态规划正文力扣题第 N 个泰波那契数三步问题使用最小花费爬楼梯 总结 什么是动态规划 线性动态规划:是可以用一个dp表来存储内容,并且找到规律存储,按照规律存储。让第i个位置的值等于题目要求的答案 >dp表:dp表就是用一…

【数据结构】——栈|队列(基本功能)

目录 栈 基本概念 栈的常见基本操作 栈的存储 ✌栈的基本操作实现 栈的构建 栈的初始化 入栈 打印栈 出栈 获取栈顶元素 获取栈的有效元素个数 判断栈是否为空 销毁栈 队列 基本概念 队列的常见基本操作 ✌队列的基本操作实现 队列的构建 初始化 入队列 出…

不再只是android,华为自爆Harmony将对标iOS

今年10月,华为官方宣布,鸿蒙OS 4升级设备数量已突破1亿,成为史上升级最快的鸿蒙OS版本。 日前,据数码博主“定焦数码”消息,大厂技术员工做适配,通过线下沟通时,华为反复提到一个问题&#xff…

实战技巧:为Android应用设置独立的多语言

原文链接 实战技巧:为Android应用设置独立的多语言 通常情况下多语言的设置都在系统设置中,应用需要做的就是提供本应用所使用的字串的多语言翻译,使用时使用R.string.app_name类似的引用,然后系统会根据用户在系统设置中的选项来…

不瞒各位,不安装软件也能操作Xmind文档

大家好,我是小悟 作为搞技术的一个人群,时不时就要接收产品经理发过来的思维脑图,而此类文档往往是以Xmind编写的,如果你的电脑里面没有安装Xmind的话,不好意思,是打不开这类后缀结尾的文档。 打不开的话…

【雷电模拟器桥接问题解决方法】

1.ROOT权限开启 2.开启网络桥接模式,选择静态IP设置,点击安装桥接网卡,填写IP地址(注意:IP地址要与host主机在同一IP段内) 3.重启后 adb shell就能进入到模拟器控制台中了,如果出现以下内容&…

进程程序替换和shell实现

先前fork说创建子进程执行代码,如何让子进程执行和父进程完全不一样的代码?程序替换。 一 单进程替换演示 1 execl函数使用 最近转到在vs code下写代码,之前也在xhell下用过execl函数,所以才想写篇博客总结总结,没想到在vs code…

(C语言)计算n的阶乘

要求使用双精度 #include<stdio.h> double factorial(int n) {if(n 1)return 1;return n * factorial(n-1); } int main() {int n ;double res;scanf("%d",&n);res factorial(n);printf("%lf",res); return 0; } 运行截图&#xff1a; 注&am…

oops-framework框架 之 界面管理(三)

引擎&#xff1a; CocosCreator 3.8.0 环境&#xff1a; Mac Gitee: oops-game-kit 注&#xff1a; 作者dgflash的oops-framework框架QQ群&#xff1a; 628575875 回顾 在上文中主要通过oops-game-kit大家了一个新的模版项目&#xff0c; 主要注意项是resources目录下的两个文…

Python Opencv实践 - Yolov3目标检测

本文使用CPU来做运算&#xff0c;未使用GPU。练习项目&#xff0c;参考了网上部分资料。 如果要用TensorFlow做检测&#xff0c;可以参考这里 使用GPU运行基于pytorch的yolov3代码的准备工作_little han的博客-CSDN博客文章浏览阅读943次。记录一下自己刚拿到带独显的电脑&a…

卷积神经网络(CNN):艺术作品识别

文章目录 一、前言一、设置GPU二、导入数据1. 导入数据2. 检查数据3. 配置数据集4. 数据可视化 三、构建模型四、编译五、训练模型六、评估模型1. Accuracy与Loss图2. 混淆矩阵3. 各项指标评估 一、前言 我的环境&#xff1a; 语言环境&#xff1a;Python3.6.5编译器&#xf…

继承 多态 拆箱装箱 128陷阱 枚举类

继承 在java里一个类只能继承一个类&#xff0c;但可以被多个类继承&#xff1b;c里一个类可以继承多个类&#xff1b; 子类可以使用父类的方法&#xff1b; 在java中&#xff0c;Object是所有类的父类&#xff1b; equals方法比较的是对象是否指向同一个地方&#xff0c;这个方…