初识 RocketMQ,一般人都会犯这样的错误,趁早提前避免

2024-01-29 09:58

本文主要是介绍初识 RocketMQ,一般人都会犯这样的错误,趁早提前避免,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

背景

producer 发消息时,报 No route info of this topic 错误:

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic
See http://rocketmq.apache.org/docs/faq/ for further details.at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:662) ~[rocketmq-client-4.5.2.jar!/:4.5.2]at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.access$300(DefaultMQProducerImpl.java:90) ~[rocketmq-client-4.5.2.jar!/:4.5.2]at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl$3.run(DefaultMQProducerImpl.java:491) ~[rocketmq-client-4.5.2.jar!/:4.5.2]at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_262]at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_262]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_262]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_262]at java.lang.Thread.run(Thread.java:748) [na:1.8.0_262]

这个错误网上说是由于 Broker 未启用自动创建 Topic 开关造成的,解决办法是在启动 Broker 时指定 autoCreateTopicEnable=true 即可。

例如:

  nohup sh mqbroker -n xxxip:9876  autoCreateTopicEnable=true 

其实这个说法并不靠谱,即使配置了autoCreateTopicEnable=true 还是会报这个错误,其实还有别的原因也有可能报 No route info of this topic 错误。问题原因出在使用 sh mqbroker -n xxxip:9876 启动 mqborker 时候,如果 xxip 是内网 IP,否则也会报 No route info of this topic 错误。

所以解决办法就是把 xxip 改成 公网IP即可,修改方式有两种:1、在 sh mqbroker 命令指定

nohup sh bin/mqbroker -n 公网IP:9876  autoCreateTopicEnable=true &

2、在 conf/broker.conf 中 加入 brokerIP1=公网IP 以及 autoCreateTopicEnable=true

brokerIP1=公网IP
autoCreateTopicEnable=true

推荐完整命令

  • 启动 mqnamesrv

nohup sh /app/rocketmq-4.8.0/bin/mqnamesrv & 
  • 启动 mqbroker

nohup sh /app/rocketmq-4.8.0/bin/mqbroker -c /app/rocketmq-4.8.0/conf/broker.conf &

作者简介:编筐少年一枚简单的北漂程序员。喜欢用简单的文字记录工作与生活中的点点滴滴,愿与你一起分享程序员灵魂深处真正的内心独白。我的微信号:WooolaDunzung,公众号【猿芯输入 1024 ,有份惊喜送给你哦

喜欢就点个"在看"呗^_^

这篇关于初识 RocketMQ,一般人都会犯这样的错误,趁早提前避免的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656532

相关文章

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误