Ressourcengovernance mit Anwendungsgruppen

Azure Event Hubs ermöglicht es Ihnen, Ereignisstreamingworkloads von Clientanwendungen zu steuern, die eine Verbindung mit Event Hubs herstellen. Sie können logische Gruppen erstellen, die als Anwendungsgruppen bezeichnet werden, bei denen jede Gruppe aus einer Sammlung von Clientanwendungen besteht, und dann Kontingent- und Zugriffsverwaltungsrichtlinien auf eine Anwendungsgruppe anwenden.

Hinweis

Anwendungsgruppen sind derzeit nur in den Premium- und Dedicated-Tarifen verfügbar.

Anwendungsgruppen

Eine Anwendungsgruppe ist eine Sammlung einer oder mehrerer Clientanwendungen, die mit der Datenebene von Event Hubs interagieren. Jede Anwendungsgruppe kann einen einzelnen Event Hubs-Namespace oder Event Hubs (Entität) innerhalb eines Namespace umfassen und sollte eine eindeutige Identifizierungsbedingung wie den Sicherheitskontext der Clientanwendung verwenden – Shared Access Signature (SAS) oder Azure Active Directory-Anwendungs-ID (Azure AD).

Event Hubs unterstützt derzeit das Verwenden von Sicherheitskontexten zum Erstellen von Anwendungsgruppen. Daher muss jeder Anwendungsgruppe eine eindeutige SAS-Richtlinie oder Azure AD-Anwendungs-ID zugeordnet sein. Sie können den Sicherheitskontext auch auf Event Hub-Ebene verwenden, um eine Anwendungsgruppe mit einem bestimmten Event Hub innerhalb eines Namespace zu verwenden.

Anwendungsgruppen sind logische Entitäten, die auf Namespace-Ebene erstellt werden. Deshalb müssen Clientanwendungen, die mit Event Hubs interagieren, nicht über die Existenz einer Anwendungsgruppe informiert werden. Event Hubs kann eine beliebige Clientanwendung mithilfe der Identifizierungsbedingung einer Anwendungsgruppe zuordnen.

Wie unten gezeigt, können Sie Anwendungsgruppen basierend auf dem Sicherheitskontext erstellen, den die Clientanwendungen verwenden. So können Anwendungsgruppen mehrere Clientanwendungen übergreifend denselben Sicherheitskontext nutzen.

Abbildung: Erfassung von Event Hubs-Daten in Azure Storage oder Azure Data Lake Storage

Anwendungsgruppen weisen keine direkte Zuordnung zu einer Consumergruppe auf. Je nach Anwendungsgruppenbezeichner wie dem Sicherheitskontext können eine oder mehrere Anwendungsgruppen einer Consumergruppe zugeordnet sein, oder eine Anwendungsgruppe kann mehrere Consumergruppen umfassen.

Dies sind die Schlüsselattribute einer Anwendungsgruppe:

Parameter BESCHREIBUNG
name Eindeutiger Name einer Anwendungsgruppe
clientAppGroupIdentifier Ordnen Sie eine Anwendungsgruppe einer eindeutigen Identifizierungsbedingung zu, z. B. dem Sicherheitskontext wie einer SAS-Richtlinie oder Azure AD-Anwendungs-ID.
Richtlinien Liste der Richtlinien, z. B. Einschränkungsrichtlinien, die das Streaming von Ereignissen zwischen Clientanwendungen und dem Event Hubs-Namespace steuern
isEnabled Bestimmen Sie, ob die Clientanwendungen einer Anwendungsgruppe auf Event Hubs-Namespaces zugreifen können oder nicht.

Anwendungsgruppenrichtlinien

Jede Anwendungsgruppe kann null oder mehr Richtlinien enthalten, die den Datenebenenzugriff der Clientanwendungen steuern, die Teil der Anwendungsgruppe sind. Anwendungsgruppen unterstützen derzeit Einschränkungsrichtlinien.

Einschränkungsrichtlinien

Sie können Einschränkungsrichtlinien mit unterschiedlichen Eingangs- und Ausgangsmetriken angeben. Anwendungsgruppen unterstützen das Verwenden der folgenden Metriken zum Einschränken der Eingangs- oder Ausgangs-Workloads von Clientanwendungen.

Parameter BESCHREIBUNG
IncomingBytes Herausgeberdurchsatz in Bytes pro Sekunde
OutgoingBytes Consumerdurchsatz in Bytes pro Sekunde
IncomingMessages Anzahl der veröffentlichten Ereignisse pro Sekunde
OutgoingMessages Anzahl der genutzten Ereignisse pro Sekunde

Wenn Richtlinien für Anwendungsgruppen angewendet werden, wird die Clientanwendungs-Workload möglicherweise verlangsamt, oder es treten Ausnahmen auf, da der Server ausgelastet ist.

Drosselungsrichtlinie: Schwellenwerte

In der folgenden Tabelle sind Mindestschwellenwerte aufgeführt, die Sie für unterschiedliche Metrik-IDs in der Drosselungsrichtlinie festlegen können:

Metrik-ID Minimales Limit
IncomingByte 1 KB
OutgoingByte 1 KB
IncomingMessage 1
Ausgehende Nachricht 1

Hinweis

Grenzwerte, die für den Schwellenwert der Drosselungsrichtlinie festgelegt sind, haben Vorrang vor jedem Wert, der für Kafka-Themeneigenschaften festgelegt ist. Beispiel: IncomingBytes hat eine höhere Priorität als message.max.bytes.

Protokollunterstützung und Fehlercodes

Eine Anwendungsgruppe unterstützt Drosselungsvorgänge über folgende Protokolle: AMQP, Kafka und HTTP. Die folgende Tabelle enthält die erwarteten Fehlercodes, die von Anwendungsgruppen zurückgegeben werden:

Protokoll Vorgang Fehlercode Fehlermeldung
AMQP Send 50004 Die Anwendungsgruppe wird mit Anwendungsgruppen-ID und Richtlinienname gedrosselt.
HTTP Send 503 Untergeordneter Code: 50004. Die Anwendungsgruppe wird mit Anwendungsgruppen-ID und Richtlinienname gedrosselt.
Kafka Send PolicyViolation Broker: Richtlinienverstoß

Aufgrund von Einschränkungen auf Protokollebene werden Fehlermeldungen während des Empfangsvorgangs nicht unterstützt. Wenn Anwendungsgruppen Empfangsvorgänge drosseln, kommt es auf der Consumerseite zu einem langsamen Nachrichtenverbrauch.

Deaktivieren von Anwendungsgruppen

Anwendungsgruppen sind standardmäßig aktiviert. Das bedeutet, dass alle Clientanwendungen zum Veröffentlichen und Nutzen von Ereignissen auf den Event Hubs-Namespace zugreifen können, indem sie die Anwendungsgruppenrichtlinien befolgen.

Wenn eine Anwendungsgruppe deaktiviert ist, kann der Client weiterhin eine Verbindung mit dem Event Hub herstellen, aber bei der Autorisierung tritt ein Fehler auf, und dann wird die Clientverbindung geschlossen. Daher werden viele erfolgreiche offene und geschlossene Verbindungen mit der gleichen Anzahl von Autorisierungsfehlern in Diagnoseprotokollen angezeigt.

Nächste Schritte

Anweisungen zum Erstellen und Verwalten von Anwendungsgruppen finden Sie unter Ressourcengovernance für Clientanwendungen mit dem Azure-Portal.