Apache RocketMQ:一个奇怪的现象
Posted 你是小KS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache RocketMQ:一个奇怪的现象相关的知识,希望对你有一定的参考价值。
当前版本:rocketmq4.9
1. 声明
当前内容主要为本人学习和记录使用Apache RocketMQ的问题
2. 问题描述
问题描述如下:
昨天关闭了rocketmq今天再次启动rocketmq且rocketmq也启动了
无法使用生产者向TestTopic发送消息,生产者无法启动
消费者可以正常的启动并订阅TestTopic
- 昨天获取所有Topic时为正常显示,且可以访问系统的Topic,
今天却直接返回空集合
- 通过topicConfigTable可以看到TestTopic存在
执行生产者和查询TestTopic的路由信息均出现一个错误:DESC: No topic route info in name server for the topic: TopicTest
通过错误提示找到官方解释
官方的解释就是:
- 确保你的生产者能够连接到名称服务器,且可以获取到路由元数据
- 确定你的名称服务器包含这个topic的路由元数据信息,你可以通过admintools使用topicRoute查询
- 确定你的broker还在发送心跳到名称服务器,你的生产者也是连接的同样的名称服务器
- 确定的topic的
访问权限是rw-或至少为-w-
(权限问题)
结果发现官方文档的帮助没有用,原因:通过topicConfigTable得到权限是rw-
,消费者可以连接到名称服务器,且可以订阅topic,表示应该是正确的
3. 解决办法
通过按照顺序方式关闭rocketmq,然后按照顺序启动rocketmq可以解决该问题(本人的问题不是官方文档中描述的)
- 关闭broker
- 关闭namesrv
- 启动namesrv
- 启动broker
结果发现好了,前面出现的问题都解决了
本人怀疑,可能是启动的时候出现了问题,导致看似可以操作但是却不可操作的问题,导致topicConfigTable和获取的不一致,又或者是rocketmq本身存在的bug
以上是关于Apache RocketMQ:一个奇怪的现象的主要内容,如果未能解决你的问题,请参考以下文章
Apache RocketMQ + Hudi 快速构建 Lakehouse