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 构建器。

相关文章