【发布时间】:2020-11-14 08:46:53
【问题描述】:
我正在尝试使用 amqp-10-jms-spring-boot 启动器连接到 Azure 服务总线(我知道在后台使用 apache qpid jms。
当我将连接字符串 (amqphub.amqp10jms.remote-url) 设置为使用“amqps://”时,一切正常,hello world 消息被发送到 Azure 队列,然后由应用程序检索和打印。
但是,当我使用“amqpwss://[Endpoint]:443”连接字符串时,我收到一个异常...
Caused by: io.netty.handler.codec.http.websocketx.WebSocketHandshakeException: Invalid handshake response getStatus: 400 This service does not support WebSocket connections.
我怀疑 Azure 服务总线不支持 WebSocket 连接。
- amqphub 文档声称这是可能的:https://github.com/amqphub/amqp-10-jms-spring-boot#jms-connection-configuration
- Apache quid 文档也是如此:http://qpid.apache.org/releases/qpid-jms-0.52.0/docs/index.html
- 与服务总线文档一样“AMQP WebSockets 绑定在 TCP 端口 443 上创建一个隧道,然后等效于 AMQP 5671 连接。”:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-protocol-guide#connections-and-sessions
如何从 Spring Boot 应用程序建立到 Azure 服务总线的 amqpwss 连接?(我喜欢使用 qpid,但我不依赖它)。
此处的示例代码:https://github.com/kevvvvyp/amqp-websocket-apache-qpid
【问题讨论】:
-
我想这就是我想要实现的目标:docs.oasis-open.org/amqp-bindmap/amqp-wsb/v1.0/csprd01/…。
-
Qpid JMS 开箱即用支持此功能,您可能需要联系 MS 以获得支持
标签: spring-boot azureservicebus amqp qpid