网站首页 > 资源文章 正文
本篇分为 RocketMQ 部署和 RocketMQ-dashboard 部署两部分,主要是 RocketMQ 部署问题较多,汇总了下网上各路大神以及官方 issue 的讨论汇总而来。
RocketMQ 部署
根据官方的快速开始 尝试在本地部署 RocketMQ;如果你是按照官方文档直接来搞,可能 90% 是不可能成功的。
我自己本地部署时遇到了绝大多数网上都遇到的问题(从 4.2.0 到 4.9.3 版本均无法直接启动),比如:
- No route info of this topic
- connect to [127.0.0.1:9876] failed
- org.apache.rocketmq.client.exception.MQBrokerException: CODE: 14
No route info of this topic
这里在官方 issue 上有讨论,而且很激烈 :github.com/apache/rock…;RocketMQ 作为 Apache 顶级项目,在 issue 中还会对 qiuck starter 有如此激烈的讨论和吐槽,是否也应该有一些反思?即使是有问题出现,也应该将详细的信息吐出来,不管是没有连接到 NameServer 还是 缺少 Topic,都应该将信息暴露给用户。从我部署来看,出现 No route info of this topic时,先通过手动创建了 Topic,没有解决。尝试看了下代码
private SendResult sendDefaultImpl(
Message msg,
final CommunicationMode communicationMode,
final SendCallback sendCallback,
final long timeout
) throws MQClientException, RemotingException, MQBrokerException, InterruptedException {
// 省略...
// 这里取到的 topicPublishInfo 里面的 messageQueue 为 空,导致 topicPublishInfo.ok 为 false
TopicPublishInfo topicPublishInfo = this.tryToFindTopicPublishInfo(msg.getTopic());
if (topicPublishInfo != null && topicPublishInfo.ok()) {
boolean callTimeout = false;
// 省略...
}
// 省略...
throw new MQClientException("No route info of this topic: " + msg.getTopic() + FAQUrl.suggestTodo(FAQUrl.NO_TOPIC_ROUTE_INFO),
null).setResponseCode(ClientErrorCode.NOT_FOUND_TOPIC_EXCEPTION);
}
复制代码
从 debug 分析来看,topicPublishInfo 里面的 messageQueue 是空的;NameServer 和 Broker 进程也都是正常的,原因在于配置存在问题,导致 NameServer 和 Broker 没有建立正常的连接关系,从而导致 NameServer 感知不到 Broker,所以拉不到信息。
因为是本地部署,并且部署 rocketmq-dashboard 确可以正常连接到集群,都可以看到 Topic 信息;所以基本排除了防火墙、内外网不通等问题干;网上有很多类似的解题思路,各位仁兄在参考时一定要结合自己的实际情况来看,不要一股脑扎进去配置。
connect to [127.0.0.1:9876] failed
这个问题也是有些莫名奇妙的,NameServer 是正常启动的,通过 telnet localhost 9876 端口也是正常的,但是官方 demo 启动时报了这个错。从网上摸索了下,得到的解决方案是:
1、不要使用官方文档的启动命令,使用如下命令代替:
sh bin/mqbroker -n localhost:9876 -c conf/broker.conf
复制代码
2、broker.conf 配置文件中增加了如下配置
namesrvAddr = localhost:9876
brokerIP1=localhost
brokerIP2=localhost
复制代码
重启启动 Broker 即可。
MQBrokerException: CODE: 14
这个异常信息给的比较靠谱:
Caused by CODE: 14 DESC: service not available now, maybe disk full
复制代码
通过异常可以非常明确的 get 到原因,就是磁盘空间不够了。我本地 mac 磁盘空间从剩余 10G ,清理到剩余 50G 之后,重新启动客户端 OK 了。
RocketMQ-Dashboard 部署
这个项目还是有点惊喜的,github.com/apache/rock… 。
部署可以参考:rocketmq.apache.org/docs/%E9%83… ;这个部署比较简单,没有 RocketMQ 那么多套路和问题,部署完成之后,界面大致如下:
作者:磊叔的技术博客
链接:https://juejin.cn/post/7143906476229132318
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 上一篇: 《ROS入门》第9讲:(服务端Server的编程实现)
- 下一篇: Linux SSH实用技巧几则
猜你喜欢
- 2024-11-19 要懂redis,首先得看懂sds(全网最细节的sds讲解)
- 2024-11-19 迷之 crontab 异常:不运行、不报错、无日志?原来是这些原因
- 2024-11-19 「Shiro 系列 07」Shiro 中密码加盐
- 2024-11-19 K8S:分享一次“乌龙问题”(人为导致的无法正常删除命名空间)
- 2024-11-19 DBCC CHECKD 手工修复和优化数据库 各种参数的用法说明
- 2024-11-19 开发利器丨如何使用ELK设计微服务中的日志收集方案?
- 2024-11-19 人民艺Show|共赏经典话剧:北京人民艺术剧院《雷雨》
- 2024-11-19 聊聊springboot项目如何实现自定义actuator端点
- 2024-11-19 Doris Rollup物化视图及应用实践
- 2024-11-19 JavaDemo案例演示RocketMQ DLedger宕机故障下的高可用
你 发表评论:
欢迎- 最近发表
-
- Linux系统Shell脚本编程之whiptail图形化工具编写系统管理程序
- Linux常用命令讲解及Shell脚本开发实战入门二
- Linux命令手册:从青铜到王者,这30个命令让你成为终端高手
- Shell脚本编程入门:轻松掌握自动化利器
- 阿里巴巴《Linux命令行与shell脚本编程大全》高清版 PDF 开放下载
- Lazygit:让Git操作变得直观高效的终端魔法
- 2GB内存电脑跑Win10太卡 程序员求助 网友怀念起XP系统
- 觉得Linux很难?不妨试试2025年这些Linux桌面版!
- Linux运维工程师必知的服务器备份工具:Rsnapshot
- 推荐给系统管理员的10款Linux GUI工具
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)