Compartilhar via


ServiceBusClientBuilder Classe

  • java.lang.Object
    • com.azure.messaging.servicebus.ServiceBusClientBuilder

Implementações

public final class ServiceBusClientBuilder
implements TokenCredentialTrait<ServiceBusClientBuilder>, AzureNamedKeyCredentialTrait<ServiceBusClientBuilder>, ConnectionStringTrait<ServiceBusClientBuilder>, AzureSasCredentialTrait<ServiceBusClientBuilder>, AmqpTrait<ServiceBusClientBuilder>, ConfigurationTrait<ServiceBusClientBuilder>

Essa classe fornece uma API de construtor fluente para auxiliar na instanciação de clientes para enviar e receber mensagens de/para entidades do Barramento de Serviço.

As credenciais são necessárias para executar operações em Barramento de Serviço do Azure. Eles podem ser definidos usando um dos seguintes métodos:

A credencial usada nos exemplos a seguir é DefaultAzureCredential para autenticação. É apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. Além disso, é recomendável usar a identidade gerenciada para autenticação em ambientes de produção. Você pode encontrar mais informações sobre diferentes maneiras de autenticação e seus tipos de credenciais correspondentes na documentação da Identidade do Azure".

Clientes e subconstrutores

ServiceBusClientBuilder pode criar uma instância de vários clientes. O cliente a ser instanciado depende se os usuários estão publicando ou recebendo mensagens e se a entidade tem sessões do Barramento de Serviço habilitadas.

Envio de mensagens

Exemplo: instanciar um remetente síncrono e enviar uma mensagem

O exemplo de código a seguir demonstra a criação do cliente ServiceBusSenderClient síncrono e o envio de uma mensagem. O fullyQualifiedNamespace é o nome do host do namespace do Barramento de Serviço. Ele é listado no painel "Essentials" depois de navegar até o namespace do Barramento de Serviço por meio do Portal do Azure. A credencial usada é DefaultAzureCredential porque combina credenciais comumente usadas na implantação e desenvolvimento e escolhe a credencial a ser usada com base em seu ambiente em execução. Quando o desempenho for importante, considere usar ServiceBusMessageBatch para publicar várias mensagens ao mesmo tempo.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .sender()
     .queueName(queueName)
     .buildClient();

 sender.sendMessage(new ServiceBusMessage("Foo bar"));

Consumindo mensagens

Há vários clientes para consumir mensagens de uma entidade do Barramento de Serviço (que não tem sessões do Barramento de Serviço habilitadas).

Exemplo: instanciar um receptor assíncrono

O exemplo de código abaixo demonstra a criação de um receptor assíncrono. A credencial usada é DefaultAzureCredential para autenticação. É apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. PEEK_LOCK e disableAutoComplete() são altamente recomendados para que os usuários tenham controle sobre a liquidação de mensagens.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // 'disableAutoComplete' indicates that users will explicitly settle their message.
 ServiceBusReceiverAsyncClient asyncReceiver = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .receiver()
     .disableAutoComplete()
     .queueName(queueName)
     .buildAsyncClient();

 // When users are done with the receiver, dispose of the receiver.
 // Clients should be long-lived objects as they require resources
 // and time to establish a connection to the service.
 asyncReceiver.close();

Exemplo: Instanciar ServiceBusProcessorClient

O exemplo de código abaixo demonstra a criação de um cliente de processador. O cliente do processador é recomendado para a maioria dos cenários de produção porque oferece recuperação de conexão. A credencial usada é DefaultAzureCredential para autenticação. É apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. PEEK_LOCK e disableAutoComplete() são altamente recomendados para que os usuários tenham controle sobre a liquidação de mensagens.

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> processMessage = context -> {
     final ServiceBusReceivedMessage message = context.getMessage();
     // Randomly complete or abandon each message. Ideally, in real-world scenarios, if the business logic
     // handling message reaches desired state such that it doesn't require Service Bus to redeliver
     // the same message, then context.complete() should be called otherwise context.abandon().
     final boolean success = Math.random() < 0.5;
     if (success) {
         try {
             context.complete();
         } catch (RuntimeException error) {
             System.out.printf("Completion of the message %s failed.%n Error: %s%n",
                 message.getMessageId(), error);
         }
     } else {
         try {
             context.abandon();
         } catch (RuntimeException error) {
             System.out.printf("Abandoning of the message %s failed.%nError: %s%n",
                 message.getMessageId(), error);
         }
     }
 };

 // Sample code that gets called if there's an error
 Consumer<ServiceBusErrorContext> processError = errorContext -> {
     if (errorContext.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) errorContext.getException();

         System.out.printf("Error source: %s, reason %s%n", errorContext.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", errorContext.getException());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .processor()
     .queueName(queueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()  // Make sure to explicitly opt in to manual settlement (e.g. complete, abandon).
     .processMessage(processMessage)
     .processError(processError)
     .disableAutoComplete()
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 processorClient.start();

 // Stop processor and dispose when done processing messages.
 processorClient.stop();
 processorClient.close();

Consumindo mensagens de uma entidade do Barramento de Serviço habilitada para sessão

O Barramento de Serviço dá suporte ao tratamento conjunto e ordenado de sequências não associadas de mensagens por meio de sessões do Barramento de Serviço. As sessões podem ser usadas como um processamento FIFO (primeiro a entrar, primeiro a sair) de mensagens. Filas e tópicos/assinaturas dão suporte a sessões do Barramento de Serviço, no entanto, ele deve ser habilitado no momento da criação da entidade.

Exemplo: enviando uma mensagem para uma fila habilitada para sessão

O snippet a seguir demonstra o envio de uma mensagem para uma fila habilitada para sessões do Barramento de Serviço . Definir setMessageId(String messageId) a propriedade como "saudações" enviará a mensagem para uma sessão do Barramento de Serviço com uma ID de "saudações".

// 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, new DefaultAzureCredentialBuilder().build())
     .sender()
     .queueName(sessionEnabledQueueName)
     .buildClient();

 // Setting sessionId publishes that message to a specific session, in this case, "greeting".
 ServiceBusMessage message = new ServiceBusMessage("Hello world")
     .setSessionId("greetings");

 sender.sendMessage(message);

 // Dispose of the sender.
 sender.close();

Exemplo: receber mensagens da primeira sessão disponível

Para processar mensagens da primeira sessão disponível, alterne para ServiceBusSessionReceiverClientBuilder e compile o cliente receptor da sessão. Use acceptNextSession() para localizar a primeira sessão disponível para processar mensagens.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // 'disableAutoComplete' indicates that users will explicitly settle their message.
 ServiceBusSessionReceiverAsyncClient sessionReceiver = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .sessionReceiver()
     .disableAutoComplete()
     .queueName(sessionEnabledQueueName)
     .buildAsyncClient();

 // Creates a client to receive messages from the first available session. It waits until
 // AmqpRetryOptions.getTryTimeout() elapses. If no session is available within that operation timeout, it
 // completes with a retriable error. Otherwise, a receiver is returned when a lock on the session is acquired.
 Mono<ServiceBusReceiverAsyncClient> receiverMono = sessionReceiver.acceptNextSession();

 Flux<Void> receiveMessagesFlux = Flux.usingWhen(receiverMono,
     receiver -> receiver.receiveMessages().flatMap(message -> {
         System.out.println("Received message: " + message.getBody());

         // Explicitly settle the message via complete, abandon, defer, dead-letter, etc.
         if (isMessageProcessed) {
             return receiver.complete(message);
         } else {
             return receiver.abandon(message);
         }
     }),
     receiver -> Mono.fromRunnable(() -> {
         // Dispose of the receiver and sessionReceiver when done receiving messages.
         receiver.close();
         sessionReceiver.close();
     }));

 // This is a non-blocking call that moves onto the next line of code after setting up and starting the receive
 // operation. Customers can keep a reference to `subscription` and dispose of it when they want to stop
 // receiving messages.
 Disposable subscription = receiveMessagesFlux.subscribe(unused -> {
 }, error -> System.out.println("Error occurred: " + error),
     () -> System.out.println("Receiving complete."));

Exemplo: processar mensagens de todas as sessões

O exemplo de código a seguir demonstra a criação do ServiceBusProcessorClient que processa todas as sessões disponíveis na fila. ServiceBusSessionProcessorClientBuilder#maxConcurrentSessions(int) indica quantas sessões o processador processará ao mesmo tempo. A credencial usada é DefaultAzureCredential para autenticação. É apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. PEEK_LOCK e disableAutoComplete() são altamente recomendados para que os usuários tenham controle sobre a liquidação de mensagens.

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> onMessage = context -> {
     ServiceBusReceivedMessage message = context.getMessage();
     System.out.printf("Processing message. Session: %s, Sequence #: %s. Contents: %s%n",
         message.getSessionId(), message.getSequenceNumber(), message.getBody());
 };

 Consumer<ServiceBusErrorContext> onError = context -> {
     System.out.printf("Error when receiving messages from namespace: '%s'. Entity: '%s'%n",
         context.getFullyQualifiedNamespace(), context.getEntityPath());

     if (context.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) context.getException();

         System.out.printf("Error source: %s, reason %s%n", context.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", context.getException());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusProcessorClient sessionProcessor = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .sessionProcessor()
     .queueName(sessionEnabledQueueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()
     .maxConcurrentSessions(2)
     .processMessage(onMessage)
     .processError(onError)
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 sessionProcessor.start();

 // Stop processor and dispose when done processing messages.
 sessionProcessor.stop();
 sessionProcessor.close();

Compartilhamento de conexão

A criação de uma conexão com o Barramento de Serviço requer recursos. Se sua arquitetura permitir, um aplicativo deverá compartilhar a conexão entre clientes que pode ser obtida compartilhando o construtor de nível superior, conforme mostrado abaixo.

Compartilhando uma conexão entre clientes

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // Any clients created from this builder will share the underlying connection.
 ServiceBusClientBuilder sharedConnectionBuilder = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential);

 // Create receiver and sender which will share the connection.
 ServiceBusReceiverClient receiver = sharedConnectionBuilder
     .receiver()
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .queueName(queueName)
     .buildClient();
 ServiceBusSenderClient sender = sharedConnectionBuilder
     .sender()
     .queueName(queueName)
     .buildClient();

 // Use the clients and finally close them.
 try {
     sender.sendMessage(new ServiceBusMessage("payload"));
     receiver.receiveMessages(1);
 } finally {
     // Clients should be long-lived objects as they require resources
     // and time to establish a connection to the service.
     sender.close();
     receiver.close();
 }

Resumo do Construtor

Construtor Description
ServiceBusClientBuilder()

Cria uma nova instância com o transporte AMQPpadrão .

Resumo do método

Modificador e tipo Método e descrição
ServiceBusClientBuilder clientOptions(ClientOptions clientOptions)

Define o ClientOptions a ser enviado do cliente criado a partir desse construtor, permitindo a personalização de determinadas propriedades, bem como dá suporte à adição de informações de cabeçalho personalizadas.

ServiceBusClientBuilder configuration(Configuration configuration)

Define o repositório de configuração usado durante a construção do cliente de serviço.

ServiceBusClientBuilder connectionString(String connectionString)

Define o cadeia de conexão para um namespace do Barramento de Serviço ou um recurso específico do Barramento de Serviço.

ServiceBusClientBuilder credential(AzureNamedKeyCredential credential)

Define a credencial com as políticas de acesso compartilhado para o recurso do Barramento de Serviço.

ServiceBusClientBuilder credential(AzureSasCredential credential)

Define a credencial com a Assinatura de Acesso Compartilhado para o recurso do Barramento de Serviço.

ServiceBusClientBuilder credential(TokenCredential credential)

Define o TokenCredential usado para autorizar solicitações enviadas ao serviço.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureNamedKeyCredential credential)

Define a credencial com as políticas de acesso compartilhado para o recurso do Barramento de Serviço.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureSasCredential credential)

Define a credencial com a Assinatura de Acesso Compartilhado para o recurso do Barramento de Serviço.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, TokenCredential credential)

Define a credencial usando um TokenCredential para o recurso do Barramento de Serviço.

ServiceBusClientBuilder customEndpointAddress(String customEndpointAddress)

Define um endereço de ponto de extremidade personalizado ao se conectar ao serviço do Barramento de Serviço.

ServiceBusClientBuilder enableCrossEntityTransactions()

Habilite a transação entre entidades na conexão com o Barramento de serviço.

ServiceBusClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)

Define o namespace totalmente qualificado para o Barramento de Serviço.

ServiceBusProcessorClientBuilder processor()

Uma nova instância de ServiceBusProcessorClientBuilder usada para configurar ServiceBusProcessorClient a instância.

ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)

Define a configuração de proxy a ser usada para ServiceBusSenderAsyncClient.

ServiceBusReceiverClientBuilder receiver()

Uma nova instância de usada para configurar receptores de ServiceBusReceiverClientBuilder mensagens do Barramento de Serviço.

ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)

Define as opções de repetição para clientes do Barramento de Serviço.

ServiceBusRuleManagerBuilder ruleManager()

Uma nova instância de ServiceBusRuleManagerBuilder usada para configurar uma instância do gerenciador de regras do Barramento de Serviço.

ServiceBusSenderClientBuilder sender()

Uma nova instância de ServiceBusSenderClientBuilder usada para configurar remetentes de mensagens do Barramento de Serviço.

ServiceBusSessionProcessorClientBuilder sessionProcessor()

Uma nova instância de ServiceBusSessionProcessorClientBuilder usada para configurar uma instância de processador do Barramento de Serviço que processa sessões.

ServiceBusSessionReceiverClientBuilder sessionReceiver()

Uma nova instância de usada para configurar receptores de ServiceBusSessionReceiverClientBuilder mensagens do Barramento de Serviço com reconhecimento de sessão .

ServiceBusClientBuilder transportType(AmqpTransportType transportType)

Define o tipo de transporte pelo qual toda a comunicação com Barramento de Serviço do Azure ocorre.

Métodos herdados de java.lang.Object

Detalhes do construtor

ServiceBusClientBuilder

public ServiceBusClientBuilder()

Cria uma nova instância com o transporte AMQPpadrão .

Detalhes do método

clientOptions

public ServiceBusClientBuilder clientOptions(ClientOptions clientOptions)

Define o ClientOptions a ser enviado do cliente criado a partir desse construtor, permitindo a personalização de determinadas propriedades, bem como dá suporte à adição de informações de cabeçalho personalizadas. Consulte a ClientOptions documentação para obter mais informações.

Parameters:

clientOptions - a ser definido no cliente.

Returns:

O objeto atualizado ServiceBusClientBuilder.

configuration

public ServiceBusClientBuilder configuration(Configuration configuration)

Define o repositório de configuração usado durante a construção do cliente de serviço. Se não for especificado, o repositório de configuração padrão será usado para configurar clientes do Barramento de Serviço. Use NONE para ignorar o uso de configurações durante a construção.

Parameters:

configuration - O repositório de configuração usado para configurar clientes do Barramento de Serviço.

Returns:

O objeto atualizado ServiceBusClientBuilder.

connectionString

public ServiceBusClientBuilder connectionString(String connectionString)

Define o cadeia de conexão para um namespace do Barramento de Serviço ou um recurso específico do Barramento de Serviço.

Parameters:

connectionString - Cadeia de conexão para um namespace do Barramento de Serviço ou um recurso específico do Barramento de Serviço.

Returns:

O objeto atualizado ServiceBusClientBuilder.

credential

public ServiceBusClientBuilder credential(AzureNamedKeyCredential credential)

Define a credencial com as políticas de acesso compartilhado para o recurso do Barramento de Serviço. Você pode encontrar as políticas de acesso compartilhado no portal do azure ou na CLI do Azure. Por exemplo, no portal, "Políticas de Acesso Compartilhado" tem 'política' e sua 'Chave Primária' e 'Chave Secundária'. O atributo 'name' do AzureNamedKeyCredential é a 'política' no portal e o atributo 'key' pode ser 'Chave Primária' ou 'Chave Secundária'. Esse método e connectionString(String connectionString) usa as mesmas informações de formas diferentes. Mas permite que você atualize o nome e a chave.

Parameters:

credential - AzureNamedKeyCredential a ser usado para autenticação.

Returns:

O objeto atualizado ServiceBusClientBuilder.

credential

public ServiceBusClientBuilder credential(AzureSasCredential credential)

Define a credencial com a Assinatura de Acesso Compartilhado para o recurso do Barramento de Serviço. Consulte Controle de acesso do Barramento de Serviço com Assinaturas de Acesso Compartilhado.

Parameters:

credential - AzureSasCredential a ser usado para autenticação.

Returns:

O objeto atualizado ServiceBusClientBuilder.

credential

public ServiceBusClientBuilder credential(TokenCredential credential)

Define o TokenCredential usado para autorizar solicitações enviadas ao serviço. Consulte a documentação de identidade e autenticação do SDK do Azure para Java para obter mais detalhes sobre o uso adequado do TokenCredential tipo.

Parameters:

credential - A credencial de token a ser usada para autenticação. Os controles de acesso podem ser especificados pelo namespace do ServiceBus ou pela entidade do Barramento de Serviço solicitada, dependendo da configuração do Azure.

Returns:

O objeto atualizado ServiceBusClientBuilder.

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureNamedKeyCredential credential)

Define a credencial com as políticas de acesso compartilhado para o recurso do Barramento de Serviço. Você pode encontrar as políticas de acesso compartilhado no portal do azure ou na CLI do Azure. Por exemplo, no portal, "Políticas de Acesso Compartilhado" tem 'política' e sua 'Chave Primária' e 'Chave Secundária'. O atributo 'name' do AzureNamedKeyCredential é a 'política' no portal e o atributo 'key' pode ser 'Chave Primária' ou 'Chave Secundária'. Esse método e connectionString(String connectionString) usa as mesmas informações de formas diferentes. Mas permite que você atualize o nome e a chave.

Parameters:

fullyQualifiedNamespace - O namespace totalmente qualificado para o Barramento de Serviço.
credential - AzureNamedKeyCredential a ser usado para autenticação.

Returns:

O objeto atualizado ServiceBusClientBuilder.

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureSasCredential credential)

Define a credencial com a Assinatura de Acesso Compartilhado para o recurso do Barramento de Serviço. Consulte Controle de acesso do Barramento de Serviço com Assinaturas de Acesso Compartilhado.

Parameters:

fullyQualifiedNamespace - O namespace totalmente qualificado para o Barramento de Serviço.
credential - AzureSasCredential a ser usado para autenticação.

Returns:

O objeto atualizado ServiceBusClientBuilder.

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, TokenCredential credential)

Define a credencial usando um TokenCredential para o recurso do Barramento de Serviço. azure-identity tem várias TokenCredential implementações que podem ser usadas para autenticar o acesso ao recurso do Barramento de Serviço.

Parameters:

fullyQualifiedNamespace - O namespace totalmente qualificado para o Barramento de Serviço.
credential - A credencial de token a ser usada para autenticação. Os controles de acesso podem ser especificados pelo namespace do ServiceBus ou pela entidade do Barramento de Serviço solicitada, dependendo da configuração do Azure.

Returns:

O objeto atualizado ServiceBusClientBuilder.

customEndpointAddress

public ServiceBusClientBuilder customEndpointAddress(String customEndpointAddress)

Define um endereço de ponto de extremidade personalizado ao se conectar ao serviço do Barramento de Serviço. Isso pode ser útil quando sua rede não permite a conexão com o endereço padrão Barramento de Serviço do Azure ponto de extremidade, mas permite a conexão por meio de um intermediário. Por exemplo: https://my.custom.endpoint.com:55300.

Se nenhuma porta for especificada, a porta padrão para o transportType(AmqpTransportType transportType) será usada.

Parameters:

customEndpointAddress - O endereço do ponto de extremidade personalizado.

Returns:

O objeto atualizado ServiceBusClientBuilder.

enableCrossEntityTransactions

public ServiceBusClientBuilder enableCrossEntityTransactions()

Habilite a transação entre entidades na conexão com o Barramento de serviço. Use esse recurso somente quando o escopo da transação abranger diferentes entidades do Barramento de Serviço. Esse recurso é obtido roteando todas as mensagens por meio de uma entidade 'send-via' no lado do servidor, conforme explicado a seguir. Depois que os clientes são criados para várias entidades, a primeira entidade na qual ocorre uma operação se torna a entidade pela qual todos os envios subsequentes serão roteado por meio da entidade "send-via". Isso permite que o serviço execute uma transação destinada a abranger várias entidades. Isso significa que as entidades subsequentes que executam sua primeira operação precisam ser remetentes ou, se forem receptores, precisam estar na mesma entidade que a entidade inicial por meio da qual todos os envios são roteado (caso contrário, o serviço não poderá garantir que a transação seja confirmada porque não pode rotear uma operação de recebimento por meio de uma entidade diferente). Por exemplo, se você tiver SenderA (Para entidade A) e ReceiverB (para a entidade B) que são criados a partir de um cliente com transações entre entidades habilitadas, você precisará receber primeiro com o ReceiverB para permitir que isso funcione. Se você primeiro enviar para a entidade A e tentar receber da entidade B, uma exceção será gerada.

Evite usar a API de não transação neste cliente

Como esse recurso configurará a conexão com o Barramento de Serviço otimizado para habilitar esse recurso. Depois que todos os clientes tiverem sido configurados, o primeiro receptor ou remetente usado inicializará a fila 'send-via' como uma única entidade de transferência de mensagem. Todas as mensagens fluirão por meio dessa fila. Portanto, esse cliente não é adequado para nenhuma API que não seja transação.

Quando não habilitar esse recurso

Se a transação estiver envolvida apenas em uma entidade de barramento de serviço. Por exemplo, você está recebendo de uma fila/assinatura e deseja resolver suas próprias mensagens que fazem parte de uma transação.

Returns:

O objeto atualizado ServiceBusSenderClientBuilder.

fullyQualifiedNamespace

public ServiceBusClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)

Define o namespace totalmente qualificado para o Barramento de Serviço.

Parameters:

fullyQualifiedNamespace - O namespace totalmente qualificado para o Barramento de Serviço.

Returns:

O objeto atualizado ServiceBusClientBuilder.

processor

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processor()

Uma nova instância de ServiceBusProcessorClientBuilder usada para configurar ServiceBusProcessorClient a instância.

Returns:

Uma nova instância de ServiceBusProcessorClientBuilder.

proxyOptions

public ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)

Define a configuração de proxy a ser usada para ServiceBusSenderAsyncClient. Quando um proxy é configurado, AMQP_WEB_SOCKETS deve ser usado para o tipo de transporte.

Parameters:

proxyOptions - A configuração de proxy a ser usada.

Returns:

O objeto atualizado ServiceBusClientBuilder.

receiver

public ServiceBusClientBuilder.ServiceBusReceiverClientBuilder receiver()

Uma nova instância de usada para configurar receptores de ServiceBusReceiverClientBuilder mensagens do Barramento de Serviço.

Returns:

Uma nova instância de ServiceBusReceiverClientBuilder.

retryOptions

public ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)

Define as opções de repetição para clientes do Barramento de Serviço. Se não for especificado, as opções de repetição padrão serão usadas.

Parameters:

retryOptions - As opções de repetição a serem usadas.

Returns:

O objeto atualizado ServiceBusClientBuilder.

ruleManager

public ServiceBusClientBuilder.ServiceBusRuleManagerBuilder ruleManager()

Uma nova instância de ServiceBusRuleManagerBuilder usada para configurar uma instância do gerenciador de regras do Barramento de Serviço.

Returns:

Uma nova instância de ServiceBusRuleManagerBuilder.

sender

public ServiceBusClientBuilder.ServiceBusSenderClientBuilder sender()

Uma nova instância de ServiceBusSenderClientBuilder usada para configurar remetentes de mensagens do Barramento de Serviço.

Returns:

Uma nova instância de ServiceBusSenderClientBuilder.

sessionProcessor

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder sessionProcessor()

Uma nova instância de ServiceBusSessionProcessorClientBuilder usada para configurar uma instância de processador do Barramento de Serviço que processa sessões.

Returns:

Uma nova instância de ServiceBusSessionProcessorClientBuilder.

sessionReceiver

public ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder sessionReceiver()

Uma nova instância de usada para configurar receptores de ServiceBusSessionReceiverClientBuilder mensagens do Barramento de Serviço com reconhecimento de sessão .

Returns:

Uma nova instância de ServiceBusSessionReceiverClientBuilder.

transportType

public ServiceBusClientBuilder transportType(AmqpTransportType transportType)

Define o tipo de transporte pelo qual toda a comunicação com Barramento de Serviço do Azure ocorre. O valor padrão é AMQP.

Parameters:

transportType - O tipo de transporte a ser usado.

Returns:

O objeto atualizado ServiceBusClientBuilder.

Aplica-se a