ServiceBusClientBuilder Klasse

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

Implementiert

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

Diese Klasse stellt eine Fluent Builder-API bereit, um die Instanziierung von Clients zum Senden und Empfangen von Nachrichten an/von Service Bus-Entitäten zu unterstützen.

Anmeldeinformationen sind erforderlich, um Vorgänge für Azure Service Bus auszuführen. Sie können mit einer der folgenden Methoden festgelegt werden:

Die in den folgenden Beispielen verwendeten Anmeldeinformationen dienen DefaultAzureCredential der Authentifizierung. Es eignet sich für die meisten Szenarien, einschließlich lokaler Entwicklungs- und Produktionsumgebungen. Darüber hinaus wird empfohlen, die verwaltete Identität für die Authentifizierung in Produktionsumgebungen zu verwenden. Weitere Informationen zu verschiedenen Authentifizierungsmethoden und den entsprechenden Anmeldeinformationstypen finden Sie in der Azure Identity-Dokumentation.

Clients und Unterbuilder

ServiceBusClientBuilder kann mehrere Clients instanziieren. Der zu instanziierende Client hängt davon ab, ob Benutzer Nachrichten veröffentlichen oder empfangen und ob die Entität Service Bus-Sitzungen aktiviert hat.

Senden von Nachrichten

Beispiel: Instanziieren eines synchronen Absenders und Senden einer Nachricht

Im folgenden Codebeispiel wird die Erstellung des synchronen Clients ServiceBusSenderClient und das Senden einer Nachricht veranschaulicht. Der fullyQualifiedNamespace ist der Hostname des Service Bus-Namespaces. Sie wird im Bereich "Essentials" aufgeführt, nachdem Sie über das Azure-Portal zum Service Bus-Namespace navigieren. Die verwendeten Anmeldeinformationen basieren DefaultAzureCredential darauf, dass sie häufig verwendete Anmeldeinformationen in Bereitstellung und Entwicklung kombiniert und die zu verwendenden Anmeldeinformationen basierend auf der ausgeführten Umgebung auswählen. Wenn die Leistung wichtig ist, sollten Sie verwenden ServiceBusMessageBatch , um mehrere Nachrichten gleichzeitig zu veröffentlichen.

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"));

Nachrichtenverbrauch

Es gibt mehrere Clients für die Verwendung von Nachrichten von einer Service Bus-Entität (für die Service Bus-Sitzungen nicht aktiviert sind).

Beispiel: Instanziieren eines asynchronen Empfängers

Im folgenden Codebeispiel wird das Erstellen eines asynchronen Empfängers veranschaulicht. Die verwendeten Anmeldeinformationen dienen DefaultAzureCredential der Authentifizierung. Es eignet sich für die meisten Szenarien, einschließlich lokaler Entwicklungs- und Produktionsumgebungen. PEEK_LOCK und disableAutoComplete() werden dringend empfohlen, damit Benutzer die Kontrolle über die Nachrichtenabwicklung haben.

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();

Beispiel: Instanziieren ServiceBusProcessorClient

Im folgenden Codebeispiel wird das Erstellen eines Prozessorclients veranschaulicht. Der Prozessorclient wird für die meisten Produktionsszenarien empfohlen, da er die Verbindungswiederherstellung bietet. Die verwendeten Anmeldeinformationen dienen DefaultAzureCredential der Authentifizierung. Es eignet sich für die meisten Szenarien, einschließlich lokaler Entwicklungs- und Produktionsumgebungen. PEEK_LOCK und disableAutoComplete() werden dringend empfohlen, damit Benutzer die Kontrolle über die Nachrichtenabwicklung haben.

// 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();

Verwenden von Nachrichten von einer sitzungsfähigen Service Bus-Entität

Service Bus unterstützt die gemeinsame und geordnete Verarbeitung ungebundener Nachrichtensequenzen über Service Bus-Sitzungen. Sitzungen können als FIFO-Verarbeitung (First In, First Out) von Nachrichten verwendet werden. Warteschlangen und Themen/Abonnements unterstützen Service Bus-Sitzungen, müssen jedoch zum Zeitpunkt der Entitätserstellung aktiviert werden.

Beispiel: Senden einer Nachricht an eine sitzungsfähige Warteschlange

Der folgende Codeausschnitt veranschaulicht das Senden einer Nachricht an eine Service Bus-Sitzungswarteschlange , die aktiviert ist. Durch Festlegen setMessageId(String messageId) der Eigenschaft auf "Greetings" wird die Nachricht an eine Service Bus-Sitzung mit der ID "Greetings" gesendet.

// '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();

Beispiel: Empfangen von Nachrichten aus der ersten verfügbaren Sitzung

Um Nachrichten aus der ersten verfügbaren Sitzung zu verarbeiten, wechseln Sie zum ServiceBusSessionReceiverClientBuilder Sitzungsempfängerclient, und erstellen Sie diesen. Verwenden Sie acceptNextSession() , um die erste verfügbare Sitzung zum Verarbeiten von Nachrichten zu finden.

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."));

Beispiel: Verarbeiten von Nachrichten aus allen Sitzungen

Im folgenden Codebeispiel wird die Erstellung veranschaulicht, die ServiceBusProcessorClient alle verfügbaren Sitzungen in der Warteschlange verarbeitet. ServiceBusSessionProcessorClientBuilder#maxConcurrentSessions(int) gibt an, wie viele Sitzungen der Prozessor gleichzeitig verarbeitet. Die verwendeten Anmeldeinformationen dienen DefaultAzureCredential der Authentifizierung. Es eignet sich für die meisten Szenarien, einschließlich lokaler Entwicklungs- und Produktionsumgebungen. PEEK_LOCK und disableAutoComplete() werden dringend empfohlen, damit Benutzer die Kontrolle über die Nachrichtenabwicklung haben.

// 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();

Verbindungsfreigabe

Für das Erstellen einer Verbindung mit Service Bus sind Ressourcen erforderlich. Wenn Ihre Architektur es zulässt, sollte eine Anwendung eine Verbindung zwischen Clients freigeben, die durch die Gemeinsame Nutzung des Generators der obersten Ebene erreicht werden kann, wie unten gezeigt.

Freigeben einer Verbindung zwischen Clients

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();
 }

Zusammenfassung zum Konstruktor

Konstruktor Beschreibung
ServiceBusClientBuilder()

Erstellt eine neue instance mit dem StandardtransportAMQP.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
ServiceBusClientBuilder clientOptions(ClientOptions clientOptions)

Legt den fest, der ClientOptions vom Client gesendet werden soll, der aus diesem Generator erstellt wird, ermöglicht die Anpassung bestimmter Eigenschaften und unterstützt das Hinzufügen benutzerdefinierter Headerinformationen.

ServiceBusClientBuilder configuration(Configuration configuration)

Legt den Konfigurationsspeicher fest, der beim Erstellen des Dienstclients verwendet wird.

ServiceBusClientBuilder connectionString(String connectionString)

Legt die Verbindungszeichenfolge für einen Service Bus-Namespace oder eine bestimmte Service Bus-Ressource fest.

ServiceBusClientBuilder credential(AzureNamedKeyCredential credential)

Legt die Anmeldeinformationen mit den Richtlinien für den freigegebenen Zugriff für die Service Bus-Ressource fest.

ServiceBusClientBuilder credential(AzureSasCredential credential)

Legt die Anmeldeinformationen mit Shared Access Signature für die Service Bus-Ressource fest.

ServiceBusClientBuilder credential(TokenCredential credential)

Legt den fest, der TokenCredential zum Autorisieren von Anforderungen verwendet wird, die an den Dienst gesendet werden.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureNamedKeyCredential credential)

Legt die Anmeldeinformationen mit den Richtlinien für den freigegebenen Zugriff für die Service Bus-Ressource fest.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureSasCredential credential)

Legt die Anmeldeinformationen mit Shared Access Signature für die Service Bus-Ressource fest.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, TokenCredential credential)

Legt die Anmeldeinformationen mithilfe eines TokenCredential für die Service Bus-Ressource fest.

ServiceBusClientBuilder customEndpointAddress(String customEndpointAddress)

Legt eine benutzerdefinierte Endpunktadresse fest, wenn eine Verbindung mit dem Service Bus-Dienst hergestellt wird.

ServiceBusClientBuilder enableCrossEntityTransactions()

Aktivieren Sie entitätsübergreifende Transaktionen für die Verbindung mit Service Bus.

ServiceBusClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)

Legt den vollqualifizierten Namespace für Service Bus fest.

ServiceBusProcessorClientBuilder processor()

Ein neuer instance von, der zum Konfigurieren ServiceBusProcessorClient von ServiceBusProcessorClientBuilder instance verwendet wird.

ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)

Legt die Proxykonfiguration fest, die für ServiceBusSenderAsyncClientverwendet werden soll.

ServiceBusReceiverClientBuilder receiver()

Eine neue instance, die zum Konfigurieren von ServiceBusReceiverClientBuilder Service Bus-Nachrichtenempfängern verwendet wird.

ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)

Legt die Wiederholungsoptionen für Service Bus-Clients fest.

ServiceBusRuleManagerBuilder ruleManager()

Eine neue instance von, die ServiceBusRuleManagerBuilder zum Konfigurieren eines Service Bus-Regel-Managers instance verwendet wird.

ServiceBusSenderClientBuilder sender()

Eine neue instance, die zum Konfigurieren von ServiceBusSenderClientBuilder Service Bus-Nachrichtensendern verwendet wird.

ServiceBusSessionProcessorClientBuilder sessionProcessor()

Eine neue instance von, die ServiceBusSessionProcessorClientBuilder zum Konfigurieren eines Service Bus-Prozessors instance verwendet wird, der Sitzungen verarbeitet.

ServiceBusSessionReceiverClientBuilder sessionReceiver()

Eine neue instance, die zum Konfigurieren sitzungsfähigerServiceBusSessionReceiverClientBuilder Service Bus-Nachrichtenempfänger verwendet wird.

ServiceBusClientBuilder transportType(AmqpTransportType transportType)

Legt den Transporttyp fest, mit dem die gesamte Kommunikation mit Azure Service Bus erfolgt.

Geerbte Methoden von java.lang.Object

Details zum Konstruktor

ServiceBusClientBuilder

public ServiceBusClientBuilder()

Erstellt eine neue instance mit dem StandardtransportAMQP.

Details zur Methode

clientOptions

public ServiceBusClientBuilder clientOptions(ClientOptions clientOptions)

Legt den fest, der ClientOptions vom Client gesendet werden soll, der aus diesem Generator erstellt wird, ermöglicht die Anpassung bestimmter Eigenschaften und unterstützt das Hinzufügen benutzerdefinierter Headerinformationen. Weitere Informationen finden Sie in der ClientOptions Dokumentation.

Parameters:

clientOptions - auf dem Client festgelegt werden soll.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

configuration

public ServiceBusClientBuilder configuration(Configuration configuration)

Legt den Konfigurationsspeicher fest, der beim Erstellen des Dienstclients verwendet wird. Falls nicht angegeben, wird der Standardkonfigurationsspeicher zum Konfigurieren von Service Bus-Clients verwendet. Verwenden Sie NONE , um die Verwendung von Konfigurationseinstellungen während der Konstruktion zu umgehen.

Parameters:

configuration - Der Konfigurationsspeicher, der zum Konfigurieren von Service Bus-Clients verwendet wird.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

connectionString

public ServiceBusClientBuilder connectionString(String connectionString)

Legt die Verbindungszeichenfolge für einen Service Bus-Namespace oder eine bestimmte Service Bus-Ressource fest.

Parameters:

connectionString - Verbindungszeichenfolge für einen Service Bus-Namespace oder eine bestimmte Service Bus-Ressource.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

credential

public ServiceBusClientBuilder credential(AzureNamedKeyCredential credential)

Legt die Anmeldeinformationen mit den Richtlinien für den freigegebenen Zugriff für die Service Bus-Ressource fest. Sie finden die Richtlinien für den freigegebenen Zugriff im Azure-Portal oder in der Azure CLI. Für instance enthält "Shared Access Policies" im Portal "Policy" und den "Primärschlüssel" und "Sekundärer Schlüssel". Das Attribut "name" des AzureNamedKeyCredential ist die "Richtlinie" im Portal, und das Attribut "key" kann entweder "Primärschlüssel" oder "Sekundärer Schlüssel" sein. Diese Methode und connectionString(String connectionString) verwenden dieselben Informationen in unterschiedlicher Form. Sie können jedoch den Namen und den Schlüssel aktualisieren.

Parameters:

credential - AzureNamedKeyCredential für die Authentifizierung zu verwenden.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

credential

public ServiceBusClientBuilder credential(AzureSasCredential credential)

Legt die Anmeldeinformationen mit Shared Access Signature für die Service Bus-Ressource fest. Weitere Informationen finden Sie unter Service Bus-Zugriffssteuerung mit Shared Access Signatures.

Parameters:

credential - AzureSasCredential für die Authentifizierung zu verwenden.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

credential

public ServiceBusClientBuilder credential(TokenCredential credential)

Legt den fest, der TokenCredential zum Autorisieren von Anforderungen verwendet wird, die an den Dienst gesendet werden. Weitere Informationen zur ordnungsgemäßen Verwendung des Typs finden Sie in der Dokumentation zur Identität und Authentifizierung des TokenCredential Azure SDK für Java.

Parameters:

credential - Die Tokenanmeldeinformationen, die für die Authentifizierung verwendet werden sollen. Zugriffssteuerungen können je nach Azure-Konfiguration vom ServiceBus-Namespace oder der angeforderten Service Bus-Entität angegeben werden.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureNamedKeyCredential credential)

Legt die Anmeldeinformationen mit den Richtlinien für den freigegebenen Zugriff für die Service Bus-Ressource fest. Sie finden die Richtlinien für den freigegebenen Zugriff im Azure-Portal oder in der Azure CLI. Für instance enthält "Shared Access Policies" im Portal "Policy" und den "Primärschlüssel" und "Sekundärer Schlüssel". Das Attribut "name" des AzureNamedKeyCredential ist die "Richtlinie" im Portal, und das Attribut "key" kann entweder "Primärschlüssel" oder "Sekundärer Schlüssel" sein. Diese Methode und connectionString(String connectionString) verwenden dieselben Informationen in unterschiedlicher Form. Sie können jedoch den Namen und den Schlüssel aktualisieren.

Parameters:

fullyQualifiedNamespace - Der vollqualifizierte Namespace für Service Bus.
credential - AzureNamedKeyCredential für die Authentifizierung zu verwenden.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureSasCredential credential)

Legt die Anmeldeinformationen mit Shared Access Signature für die Service Bus-Ressource fest. Weitere Informationen finden Sie unter Service Bus-Zugriffssteuerung mit Shared Access Signatures.

Parameters:

fullyQualifiedNamespace - Der vollqualifizierte Namespace für Service Bus.
credential - AzureSasCredential für die Authentifizierung zu verwenden.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, TokenCredential credential)

Legt die Anmeldeinformationen mithilfe eines TokenCredential für die Service Bus-Ressource fest. azure-identity verfügt über mehrere TokenCredential Implementierungen, die zum Authentifizieren des Zugriffs auf die Service Bus-Ressource verwendet werden können.

Parameters:

fullyQualifiedNamespace - Der vollqualifizierte Namespace für Service Bus.
credential - Die Tokenanmeldeinformationen, die für die Authentifizierung verwendet werden sollen. Zugriffssteuerungen können je nach Azure-Konfiguration vom ServiceBus-Namespace oder der angeforderten Service Bus-Entität angegeben werden.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

customEndpointAddress

public ServiceBusClientBuilder customEndpointAddress(String customEndpointAddress)

Legt eine benutzerdefinierte Endpunktadresse fest, wenn eine Verbindung mit dem Service Bus-Dienst hergestellt wird. Dies kann nützlich sein, wenn Ihr Netzwerk keine Verbindung mit der Standard-Azure Service Bus-Endpunktadresse zulässt, aber eine Verbindung über einen Vermittler zulässt. Beispiel: https://my.custom.endpoint.com:55300.

Wenn kein Port angegeben ist, wird der Standardport für den transportType(AmqpTransportType transportType) verwendet.

Parameters:

customEndpointAddress - Die benutzerdefinierte Endpunktadresse.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

enableCrossEntityTransactions

public ServiceBusClientBuilder enableCrossEntityTransactions()

Aktivieren Sie entitätsübergreifende Transaktionen für die Verbindung mit Service Bus. Verwenden Sie dieses Feature nur, wenn sich Ihr Transaktionsbereich über verschiedene Service Bus-Entitäten erstreckt. Dieses Feature wird erreicht, indem alle Nachrichten über eine "send-via"-Entität auf der Serverseite weitergeleitet werden, wie im nächsten Schritt erläutert. Sobald Clients für mehrere Entitäten erstellt wurden, wird die erste Entität, für die ein Vorgang ausgeführt wird, die Entität, über die alle nachfolgenden Senden weitergeleitet werden ("send-via"-Entität). Dadurch kann der Dienst eine Transaktion ausführen, die mehrere Entitäten umfassen soll. Dies bedeutet, dass nachfolgende Entitäten, die ihren ersten Vorgang ausführen, entweder Absender sein müssen, oder wenn es sich um Empfänger handelt, die sich in derselben Entität befinden müssen wie die ursprüngliche Entität, über die alle Senden weitergeleitet werden (andernfalls kann der Dienst nicht sicherstellen, dass die Transaktion gebunden wird, da er einen Empfangsvorgang nicht über eine andere Entität weiterleiten kann). Wenn Sie für instance SenderA (Für Entität A) und ReceiverB (für Entität B) verfügen, die von einem Client mit aktivierten entitätsübergreifenden Transaktionen erstellt werden, müssen Sie zuerst ReceiverB empfangen, damit dies funktioniert. Wenn Sie zuerst an Entität A senden und dann versucht haben, von Entität B zu empfangen, wird eine Ausnahme ausgelöst.

Vermeiden der Verwendung der Nichttransaktions-API auf diesem Client

Da dieses Feature eine Verbindung mit Service Bus herstellt, die optimiert ist, um dieses Feature zu aktivieren. Sobald alle Clients eingerichtet wurden, initialisiert der erste Empfänger oder Absender die "Send-via"-Warteschlange als einzelne Nachrichtenübertragungsentität. Alle Nachrichten werden über diese Warteschlange übertragen. Daher ist dieser Client nicht für keine Nichttransaktions-API geeignet.

Wann dieses Feature nicht aktiviert werden soll

Wenn Ihre Transaktion nur an einer Service Bus-Entität beteiligt ist. Beispielsweise erhalten Sie von einer Warteschlange/einem Abonnement und möchten Ihre eigenen Nachrichten abrechnen, die Teil einer Transaktion sind.

Returns:

Das aktualisierte ServiceBusSenderClientBuilder Objekt.

fullyQualifiedNamespace

public ServiceBusClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)

Legt den vollqualifizierten Namespace für Service Bus fest.

Parameters:

fullyQualifiedNamespace - Der vollqualifizierte Namespace für Service Bus.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

processor

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processor()

Ein neuer instance von, der zum Konfigurieren ServiceBusProcessorClient von ServiceBusProcessorClientBuilder instance verwendet wird.

Returns:

Eine neue Instanz von ServiceBusProcessorClientBuilder.

proxyOptions

public ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)

Legt die Proxykonfiguration fest, die für ServiceBusSenderAsyncClientverwendet werden soll. Wenn ein Proxy konfiguriert ist, AMQP_WEB_SOCKETS muss für den Transporttyp verwendet werden.

Parameters:

proxyOptions - Die zu verwendende Proxykonfiguration.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

receiver

public ServiceBusClientBuilder.ServiceBusReceiverClientBuilder receiver()

Eine neue instance, die zum Konfigurieren von ServiceBusReceiverClientBuilder Service Bus-Nachrichtenempfängern verwendet wird.

Returns:

Eine neue Instanz von ServiceBusReceiverClientBuilder.

retryOptions

public ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)

Legt die Wiederholungsoptionen für Service Bus-Clients fest. Falls nicht angegeben, werden die Standard-Wiederholungsoptionen verwendet.

Parameters:

retryOptions - Die zu verwendenden Wiederholungsoptionen.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

ruleManager

public ServiceBusClientBuilder.ServiceBusRuleManagerBuilder ruleManager()

Eine neue instance von, die ServiceBusRuleManagerBuilder zum Konfigurieren eines Service Bus-Regel-Managers instance verwendet wird.

Returns:

Eine neue Instanz von ServiceBusRuleManagerBuilder.

sender

public ServiceBusClientBuilder.ServiceBusSenderClientBuilder sender()

Eine neue instance, die zum Konfigurieren von ServiceBusSenderClientBuilder Service Bus-Nachrichtensendern verwendet wird.

Returns:

Eine neue Instanz von ServiceBusSenderClientBuilder.

sessionProcessor

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder sessionProcessor()

Eine neue instance von, die ServiceBusSessionProcessorClientBuilder zum Konfigurieren eines Service Bus-Prozessors instance verwendet wird, der Sitzungen verarbeitet.

Returns:

Eine neue Instanz von ServiceBusSessionProcessorClientBuilder.

sessionReceiver

public ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder sessionReceiver()

Eine neue instance, die zum Konfigurieren sitzungsfähigerServiceBusSessionReceiverClientBuilder Service Bus-Nachrichtenempfänger verwendet wird.

Returns:

Eine neue Instanz von ServiceBusSessionReceiverClientBuilder.

transportType

public ServiceBusClientBuilder transportType(AmqpTransportType transportType)

Legt den Transporttyp fest, mit dem die gesamte Kommunikation mit Azure Service Bus erfolgt. Der Standardwert ist AMQP.

Parameters:

transportType - Der zu verwendende Transporttyp.

Returns:

Das aktualisierte ServiceBusClientBuilder Objekt.

Gilt für: