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 Microsoft Entra-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 Microsoft Entra-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.
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 einer Microsoft Entra-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
.
Es wird erwartet, dass die Anwendungsgruppendrosselung konsistent höhere Datenverkehrsszenarien als zulässig (über wenige Minuten) drosselt. Schnelle Bursts im Datenverkehr für einige Sekunden werden möglicherweise nicht über Anwendungsgruppen gedrosselt. Ein Blick auf den zulässigen Durchsatz über den Zeithorizont von wenigen Minuten wird empfohlen, um die Drosselung zu überprüfen.
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 | SubCode:50013, Anwendungsgruppe wird mit Anwendungsgruppen-ID und Richtlinienname gedrosselt |
HTTP | Send | 503 | SubCode:50013. 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.