RabbitMQ Shovel连接Azure Event Hub/Service Bus失败求助
RabbitMQ Shovel 无法连接 Azure Service Bus 排查求助
我尝试通过RabbitMQ Shovel连接Azure Event Hub或Service Bus,按照微软两篇官方教程配置后始终出现Shovel错误,但直接对Event Hub/Service Bus的请求是正常的。推测教程存在步骤缺失,或是组件版本更新引入了破坏性变更。
使用版本
- 初始版本:RabbitMQ 3.10.7 + Erlang 25.0
- 更新后版本:RabbitMQ 3.12.1 + Erlang 26.0
操作步骤
- 创建Azure Service Bus命名空间
rabbitmq01(基础版、公共端点)及队列from-rabbitmq01 - 启用RabbitMQ Shovel管理插件:执行命令
rabbitmq-plugins enable rabbitmq_shovel_management - 在RabbitMQ中创建队列
telemetry01 - 为Service Bus添加SAS策略
rabbitmq-shovel01(测试过Manage权限和仅Send权限),生成AMQP连接字符串:amqps://rabbitmq-shovel01:SAS-KEY@rabbitmq01.servicebus.windows.net:5671/?sasl=plain - 测试网络连通性:执行
Test-NetConnection -ComputerName rabbitmq01.servicebus.windows.net -Port 5671,结果为True - 按教程配置动态Shovel,但Shovel始终处于「启动中」状态,无法进入运行状态
报错日志
- 初始版本报错:
{badmatch,{error,closed}} - 更新版本后报错:
{options,incompatible,[{verify,verify_peer},{cacerts,undefined}]},明确提示Shovel无法连接到目标端
已尝试的解决方法
- 修改Service Bus的TLS版本
- 启用
rabbitmq_amqp1_0插件 - 测试多种URI组合及URL编码方式
- 尝试两种Shovel配置模式:Source为AMQP 0.9.1、Destination为AMQP 1.0;两端均为AMQP 1.0
目前已联系RabbitMQ社区及微软技术支持,微软侧未发现测试环境问题,后续将由专门团队排查,恳请各位提供排查思路或解决方案。
内容的提问来源于stack exchange,提问作者aspen l
相关产品推荐
相关产品推荐

