惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
量子位
T
Tailwind CSS Blog
T
Threatpost
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
P
Proofpoint News Feed
博客园 - 司徒正美
L
LangChain Blog
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
S
Secure Thoughts
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
T
Troy Hunt's Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
T
Tor Project blog
T
The Blog of Author Tim Ferriss
I
Intezer
P
Privacy & Cybersecurity Law Blog
美团技术团队
N
Netflix TechBlog - Medium
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
Attack and Defense Labs
Attack and Defense Labs
T
Tenable Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Last Week in AI
Last Week in AI

博客园 - 润之

关于 Excel 中导入 JSON 文件 Git Bash 在使用 pacman 安装软件包时的报错问题处理 Git Bash 中 pacman 安装软件包失败的问题处理 深度操作系统 deepin 20.8 定制的 SSH 安全模块问题 关于在WSL中使用RabbitMQ的问题 PowerShell脚本编写踩坑记 访问局域网资源,出现“指定的网络密码不正确” 微信图片缓存中的 dat 文件处理 关于禅道的白屏问题 Python处理编码汉字的一些方法收集 使用xrdp远程管理debian的一些记录 安利一个分支版本的Notepad2 匿名类对象的相关测试 关于 Win10 下使用 IETester 的问题 关于 Windows 10 字体安装目录的问题 关于 NPOI 导出的 Excel 出现“部分内容有问题” 的解决方法 解决美图看看不出现在“Open with”的子菜单中的问题 关于BLOB/TEXT字段存储设计及性能的简单研究 Win10 远程服务器版
.NET 操作 RabbitMQ 踩坑记录
润之 · 2023-11-18 · via 博客园 - 润之

由于项目需要,准备使用消息队列,经过一番筛选,最终选定 RabbitMQ,它的性能虽然没有 Kafka 那强大,但它更可靠、稳定,而且有官方提供的 nuget 包,感觉更适合 .NET,更适合我们的使用场景。

查了一些资料,发现在 Windows 环境中安装还挺麻烦的,还要分别安装 ErLang 和 RabbitMQ,还要配置环境变量,总之比较麻烦。试了一下在 WSL / Debian 中 apt install  rabbitmq-server,一键安装省了不少事,进了它的 Web 控制台,各种操作一切正常!感觉很顺利,还有点小激动。

于是创建个控制的测试项目,尝试代码操作 RabbitMQ 体验一下,接下来正式入坑!完全按照示例代码写的服务参数信息,确认没有错误,代码编译也没有任何错误和警告,就是运行过程中报错“None of the specified endpoints were reachable”,上网搜了一下类似问题的解决方案,有说是连接服务参数不正确的,有说是SSL问题的,有说是类库引用不正确的,说是把所有的nuget引用都移除了,再添加一遍就好了,看着都觉得不靠谱,总之各种方案都试了,就是解决不了,浪费了两三个小时的宝贵时间!为了不让再遇到相关问题的朋友被那些无用的信息困扰,特在此分享问题的解决方案。

最终是在另一台电脑的WSL环境中安装了 RabbitMQ,然后用示例代码连接操作竟然一切正常!两台电脑的系统环境基本相同,并无太大的差别。经过仔细对比后,在 rabbitmqctl status 输出的信息中发现了关键的区别!正常的那台,端口信息是“Interface: 127.0.0.1, port: 5672……”;而异常的那台,端口信息是“Interface: [::], port: 5672……”,应该是把服务只绑定到 IPv6 上了,尝试修改配置文件 /etc/rabbitmq/rabbitmq-env.conf 中的 NODE_IP_ADDRESS 为 0.0.0.0 或 127.0.0.1 后,测试程序均可以正常工作,真是奇葩的问题!RabbitMQ 的报错信息也够误导人的!

至此,问题总算解决。初识 RabbitMQ 就被当头一棒,以后还不知有多少坑等着要踩,只求码神保佑了!

顺便多说一句,RabbitMQ的数据目录位置是在 /var/lib/rabbitmq/mnesia 或 /usr/local/rabbitmq/mnesia,卸载软件并不会删除这个数据目录,重新安装的话,之前创建的用户等数据都还在,这是一个数百MB的目录,如果彻底不打算使用 RabbitMQ 了,需要手动删除,以释放空间。