Azure Service Bus Java:通过代理使用 WebSockets 上的 AMQP
使用 AMQP 库的代理设置,将 Azure Service Bus 的 Java 消息客户端配置为通过 WebSockets 使用 AMQP。
Azure Service Bus 的现代 Java 消息客户端使用 AMQP。配置代理时,其构建器要求使用 AMQP_WEB_SOCKETS。
使用 azure-messaging-servicebus 7.18.0 时,按如下方式构建发送方:
var address = new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080));
var proxy = new com.azure.core.amqp.ProxyOptions(
com.azure.core.amqp.ProxyAuthenticationType.BASIC,
address, proxyUser, proxyPassword);
var sender = new com.azure.messaging.servicebus.ServiceBusClientBuilder()
.connectionString(serviceBusConnectionString)
.transportType(com.azure.core.amqp.AmqpTransportType.AMQP_WEB_SOCKETS)
.proxyOptions(proxy)
.sender()
.queueName(queueName)
.buildClient();
账户变量向接受 Basic 的代理进行身份验证。连接字符串和队列名称仍然标识 Service Bus 资源。请在其预期生命周期内保留所创建的发送方,并在应用程序用完它后关闭。
此处应使用 com.azure.core.amqp.ProxyOptions。Azure 的 HTTP 栈中还有一个名称相似的代理选项类;它不是此构建器所接受的类型。
这会配置消息连接。使用独立创建的身份凭据的应用程序可能还需要配置该凭据的令牌 HTTP 传输。
旧的 Azure SDK 0.9 示例指的是另一代客户端。不要据此推断其配置常量或常规 HTTP 属性描述了现代 AMQP 构建器。