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

推荐订阅源

Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
U
Unit 42
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
B
Blog RSS Feed
Vercel News
Vercel News
F
Fortinet All Blogs
Know Your Adversary
Know Your Adversary
T
Troy Hunt's Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Jina AI
Jina AI
小众软件
小众软件
T
Threatpost
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
Scott Helme
Scott Helme
B
Blog
腾讯CDC
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
S
Schneier on Security
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
K
Kaspersky official blog
G
Google Developers Blog
T
Tor Project blog
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Latest news
Latest news
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
罗磊的独立博客

博客园 - 润之

关于 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 了,需要手动删除,以释放空间。