一个功能齐全的RabbitMQ客户端库,在私有仓库中存放多年,宣称支持自动重连、通道池、熔断器、速率限制、gzip压缩、死信队列等。但最关键的重连功能从未生效——因为整个仓库没有一行测试。作者审计源码发现十个确认bug,包括:
• 重连后未恢复通道池,所有操作永久抛出Not connected,但连接状态显示已连接
• 传递maxRetries:0时循环体不执行,消息静默丢失
• 损坏gzip消息被反复requeue,卡死整条队列并占满100% CPU
• 死信队列发布缺少mandatory标志,路由无绑定时消息消失
重构后的核心强制在CI中运行真实RabbitMQ实例,通过管理API切断连接验证恢复能力。测试套件包含87项自动化测试(72单元+15集成),在Node 22/24上运行,并附带22个可运行示例。最终发布的库具备真正可靠性:自动重连完整恢复拓扑、发布确认、每键速率限制、独立熔断器、透明gzip、死信支持、延迟消息、工作线程消费者等。
github.com/pinceladasdaweb/rabbitmq
#开发者 #工具 #RabbitMQ #Nodejs #测试 #重构 #开源
@DevToolboxHub
