关于rocketMQ踩坑的那些事

news2024/11/17 2:34:57

在最近,我所写的这个项目需要使用到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!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做一件荒谬的事:用AI推理下一次双色球结果 v0.1

做一件荒谬的事:用AI推理下一次双色球结果 v0.1 引言 事情的起因是父亲被亲戚安利,突然喜欢上了双色球,连规则和开奖结果怎么看都不懂的他,让我研究研究这个事,给他选个号。他还说老家有好几个人中了几百万&#xff…

unity学习笔记18

模型文件属性简介 1.动画类型:一共有四种:无 表示没有动画,旧版 就表示这个模型文件里面的动画片段可以用animation组件来播放的,最后两个 ”泛型“和“人形”都是animator组件来播放的。区别是泛型支持所有类型的动画播放&#x…

CoreDNS实战(一)-构建高性能、插件化的DNS服务器

1 概述 在企业高可用DNS架构部署方案中我们使用的是传统老牌DNS软件Bind, 但是现在不少企业内部流行容器化部署,所以也可以将Bind替换为 CoreDNS ,由于 CoreDNS 是 Kubernetes 的一个重要组件,稳定性不必担心,于此同时还可将K8S集…

微信扫码登录修改二维码的样式

默认是这个样子二维码都没有展示全 微信的了的 js 对象是这个样子,既然大家看到我这篇文章,想必里面的属性已经知道了,这里不做赘述。 let href data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6ODAlO21hcmdpbi10b3A6MH0uaW1wb3d…

价差后的几种方向,澳福如何操作才能盈利

在价差出现时,澳福认为会出现以下几种方向。 昂贵资产的贬值和便宜资产的平行升值。昂贵的资产贬值,而便宜的资产保持不变。昂贵资产的贬值和便宜资产的平行贬值,但昂贵资产的贬值速度更快,超过便宜资产。更贵的一对的进一步升值和…

Pycharm配置jupyter使用notebook详细指南(可换行conda环节)

本教程为事后记录,部分图片非实操图片。 详细记录了pycharm配置jupyter的方法,jupyter添加其他conda环境的方法,远程密码调用jupyter的方法,修改jupyter工作目录的方法。 文章目录 一、入门级配置1. Pycharm配置Conda自带的jupyt…

Python Opencv实践 - Yolov3目标检测

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

springboot数据源配置

springboot数据源配置 数据层解决方案——持久化技术 内置持久化解决方案——jdbcTemplate 内置数据库 H2一般用于测试环境,配置profiels,只在开发阶段使用,让他在上线的时候不走这里就可以了 要使用内嵌的数据库H2,要先导入jar包

python提取通话记录中的时间信息

您需要安装适合中文的SpaCy模型。您可以通过运行 pip install spacypython -m spacy download zh_core_web_sm来安装和下载所需的模型。 import spacy# 加载中文模型 nlp spacy.load(zh_core_web_sm)# 示例电话记录文本 text """ Agent: 今天我们解决一下这…

语音识别从入门到精通——1-基本原理解释

文章目录 语音识别算法1. 语音识别简介1.1 **语音识别**1.1.1 自动语音识别1.1.2 应用 1.2 语音识别流程1.2.1 预处理1.2.2 语音检测和断句1.2.3 音频场景分析1.2.4 识别引擎(**语音识别的模型**)1. 传统语音识别模型2. 端到端的语音识别模型基于Transformer的ASR模型基于CNN的…

14、pytest像用参数一样使用fixture

官方实例 # content of test_fruit.py import pytestclass Fruit:def __init__(self, name):self.name nameself.cubed Falsedef cube(self):self.cubed Trueclass FruitSalad:def __init__(self, *fruit_bowl):self.fruit fruit_bowlself._cube_fruit()def _cube_fruit(s…

【从零开始学习Redis | 第六篇】爆改Setnx实现分布式锁

前言: 在Java后端业务中, 如果我们开启了均衡负载模式,也就是多台服务器处理前端的请求,就会产生一个问题:多台服务器就会有多个JVM,多个JVM就会导致服务器集群下的并发问题。我们在这里提出的解决思路是把…

Spring Security 自定义异常失效?源码分析与解决方案

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

python pyaudio对音频进行端点检测,检测出说话区间

python pyaudio对音频进行端点检测,检测出说话区间 主要采用过零率和语音能量来进行检测,并设置双阈值。 代码如下: # -*- coding: utf-8 -*- import wave import os import matplotlib.pyplot as plt import numpy as np# 判断是否变号 de…

差分基准站

差分基准站,又称参考接收机,是一种固定式卫星接收机,用于提高卫星定位精度。 差分基准站的作用是提供已知位置和准确的位置信号,以纠正其他移动定位终端接收器接收到的卫星信号中的误差。 卫星定位信号会受到多种因素的影响&#…

Redis缓存——Spring Cache入门学习

Spring Cache 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCacheCaffeineR…

JAVA-作业7-画一个笑脸

要求如题 代码如下: SmileFace01: import java.awt.Color; import java.awt.Graphics;import javax.swing.JPanel;public class SmileFace01 extends JPanel {Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);int width getWidth(…

【c】有序数列插入一个整数

#include<stdio.h> int main() {int n;scanf("%d",&n);int arr[n1];for(int i0;i<n;i){scanf("%d",&arr[i]);}int a;scanf("%d",&a);arr[n]a;for(int j0;j<n;j){if(arr[j]>arr[n])//交换元素位置{int temparr[j];arr…

【广州华锐互动】风电场检修VR情景模拟提供接近真实的实操体验

风电场检修VR情景模拟系统由广州华锐互动开发&#xff0c;这是一种新兴的培训方式&#xff0c;它通过虚拟现实技术将风力发电场全范围进行1:1仿真建模还原&#xff0c;模拟监视风力发电场各种运行工况下的运行参数和指标&#xff0c;同时可进行升压站系统的巡视&#xff0c;倒闸…

JavaWeb 分页查询

由于html不能直接从域当中直接拿数据 所以我们引入了jsp文件 数据存在了requets域当中 如果数据量很大,不可能把所有数据全部在页面展示: 数据全部在页面展示缺点: SQL执行时间过长 用户查看数据,滚动滚动条,用户体验不高 在实际开发中,分页查询&#xff0c; 实现: sql语句…