Service Bus und Zuverlässigkeit
Verwalten Sie sämtliche Aspekte des Nachrichtenbrokerings für Unternehmen mit den in Azure Service Bus verwendeten Nachrichtenwarteschlangen und Themen zum Veröffentlichen/Abonnieren. Dieser Dienst speichert Nachrichten in einem Broker (z. B. in einer Warteschlange), bis der Consumer für den Empfang der Nachrichten bereit ist.
Dies hat unter anderem folgende Vorteile:
- Übergreifender Lastenausgleich für konkurrierende Worker
- Sicherheit beim Routing und bei der Übertragung von Daten sowie Kontrolle über Dienst- und Anwendungsgrenzen hinweg
- Koordinierung von Transaktionsausgaben mit hohen Zuverlässigkeitsanforderungen
Weitere Informationen zur Verwendung von Service Bus finden Sie in der Dokumentation zu Azure Service Bus-Messaging. Hier erfahren Sie, wie Sie Messaging für die übergreifende Vernetzung von Anwendungen und Diensten in lokalen und cloudbasierten Umgebungen einrichten.
Informationen dazu, wie Service Bus zu einer zuverlässigen Workload beiträgt, finden Sie in den folgenden Themen:
- Asynchrone Nachrichtenmuster und Hochverfügbarkeit
- Georedundante Notfallwiederherstellung in Azure Service Bus
- Handhabung von Ausfällen und Notfällen
In den folgenden Abschnitten geht es speziell um Azure Service Bus und Zuverlässigkeit:
- Überlegungen zum Entwurf
- Prüfliste für die Konfiguration
- Empfohlene Konfigurationsoptionen
- Quellartefakte
Überlegungen zum Entwurf
Maximieren Sie die Zuverlässigkeit mit einer Uptime-SLA für Azure Service Bus. Ordnungsgemäß konfigurierte Anwendungen können Nachrichten senden oder empfangen oder andere Vorgänge für eine bereitgestellte Warteschlange oder für ein bereitgestelltes Thema ausführen. Weitere Informationen finden Sie in der SLA für Service Bus.
Weitere Entwurfsüberlegungen:
Abgesehen von der Dokumentation zur Premium- und Standard-Preisstufe für Service Bus-Messaging sind die folgenden Features nur für die Premium-SKU (Stock Keeping Unit) verfügbar:
- Dedizierte Ressourcen
- VNET-Integration: Schränkt die Netzwerke ein, von denen eine Verbindung mit der Service Bus-Instanz hergestellt werden kann. Erfordert die Aktivierung von Dienstendpunkten im Subnetz. Es gibt vertrauenswürdige Microsoft-Dienste, die bei der Implementierung virtueller Netzwerke nicht unterstützt werden. Hierzu zählt beispielsweise die Integration in Event Grid. Weitere Informationen finden Sie unter Zulassen des Zugriffs auf den Azure Service Bus-Namespace aus bestimmten virtuellen Netzwerken.
- Private Endpunkte.
-
IP-Filterung/Firewall: Beschränken Sie Verbindungen nur auf definierte
IPv4
Adressen oderIPv4
Adressbereiche. - Verfügbarkeitszonen: Verbessern die Verfügbarkeit durch die Verteilung von Replikaten auf Verfügbarkeitszonen innerhalb einer Region ohne zusätzliche Kosten.
- Event Grid-Integration: Verfügbare Ereignistypen
- Skalieren von Messagingeinheiten
- Georedundante Notfallwiederherstellung (gekoppelter Namespace)
- CMK (Customer Managed Key): Azure Service Bus verschlüsselt ruhende Daten und entschlüsselt sie beim Zugriff automatisch, aber Kunden können auch ihren eigenen kundenseitig verwalteten Schlüssel mitbringen.
Wenn Service Bus mit georedundanter Notfallwiederherstellung und in Verfügbarkeitszonen bereitgestellt wird, erhöht sich das Servicelevelziel (Service Level Objective, SLO) erheblich. Die Uptime-SLA bleibt jedoch unverändert.
Checkliste
Haben Sie Azure Service Bus unter Berücksichtigung der Zuverlässigkeit konfiguriert?
- Bewerten Sie die Premium-Tarifvorteile von Azure Service Bus.
- Stellen Sie sicher, dass Service Bus-Messagingausnahmen ordnungsgemäß behandelt werden.
- Verwenden Sie für das Herstellen einer Verbindung mit Service Bus das Advanced Message Queuing Protocol (AMQP), und nutzen Sie nach Möglichkeit Dienstendpunkte oder private Endpunkte.
- Machen Sie sich mit den bewährten Methoden für Leistungsoptimierungen mithilfe von Service Bus Messaging vertraut.
- Implementieren Sie zum Schutz vor Ausfällen und Notfällen die Georeplikation auf Absender- und Empfängerseite.
- Konfigurieren Sie die georedundante Notfallwiederherstellung.
- Wenn Sie unternehmenskritisches Messaging mit Warteschlangen und Themen benötigen, wird Service Bus Premium mit georedundanter Notfallwiederherstellung empfohlen.
- Konfigurieren Sie Zonenredundanz im Service Bus-Namespace (nur auf der Dienstebene „Premium“verfügbar).
- Implementieren Sie Hochverfügbarkeit für den Service Bus-Namespace.
- Stellen Sie sicher, dass verwandte Nachrichten in festgelegter Reihenfolge übermittelt werden.
- Werten Sie verschiedene JMS-Features (Java Messaging Service) über die JMS-API aus.
- Verwenden Sie .NET-NuGet-Pakete für die Kommunikation mit Service Bus-Messagingentitäten.
- Implementieren Sie Resilienz für die Behandlung vorübergehender Fehler beim Senden oder Empfangen von Nachrichten.
- Implementieren sie die automatische Skalierung von Messagingeinheiten.
Konfigurationsempfehlungen
Beachten Sie beim Konfigurieren von Azure Service Bus die folgenden Empfehlungen zur Optimierung der Zuverlässigkeit:
Empfehlung | BESCHREIBUNG |
---|---|
Bewerten Sie die Premium-Tarifvorteile von Azure Service Bus. | Erwägen Sie die Migration zum Premium-Tarif von Service Bus, um von den Vorteilen des plattformgestützten Schutzes vor Ausfällen und Notfällen zu profitieren. |
Verwenden Sie zum Herstellen einer Verbindung mit Service Bus das AMQP-Protokoll, und nutzen Sie nach Möglichkeit Dienstendpunkte oder private Endpunkte. | Diese Empfehlung sorgt dafür, dass Datenverkehr den Azure-Backbone nicht verlässt.
Hinweis: Das Standardverbindungsprotokoll für die Namespaces Microsoft.Azure.ServiceBus und Windows.Azure.ServiceBus ist AMQP . |
Implementieren Sie zum Schutz vor Ausfällen und Notfällen die Georeplikation auf Absender- und Empfängerseite. | Die Standardebene unterstützt nur die Implementierung der Georedundanz auf Absender- und Empfängerseite. Ein Ausfall oder Notfall in einer Azure-Region kann zu Downtime für Ihre Lösung führen. |
Konfigurieren Sie die georedundante Notfallwiederherstellung. |
-
Aktiv/Aktiv - Aktiv/Passiv - Gekoppelter Namespace (Aktiv/Passiv) - Hinweis: Als sekundäre Region sollte vorzugsweise eine gekoppelte Azure-Region verwendet werden. |
Wenn Sie unternehmenskritisches Messaging mit Warteschlangen und Themen benötigen, wird Service Bus Premium mit georedundanter Notfallwiederherstellung empfohlen. | Die Auswahl des Musters hängt von den geschäftlichen Anforderungen und der Wiederherstellungszeitvorgabe (Recovery Time Objective, RTO) ab. |
Konfigurieren Sie Zonenredundanz im Service Bus-Namespace (nur auf der Dienstebene „Premium“verfügbar). | Die Zonenredundanz beinhaltet drei Kopien des Messagingspeichers. Eine Zone wird als primärer Messagingspeicher zugeordnet, die anderen Zonen werden als sekundäre Zonen zugeordnet. Wenn die primäre Zone nicht mehr verfügbar ist, wird eine sekundäre Zone ohne erkennbare Downtime auf die primäre Zone heraufgestuft. Verfügbarkeitszonen sind in einigen Azure-Regionen verfügbar, und neue Regionen werden regelmäßig hinzugefügt. |
Implementieren Sie Hochverfügbarkeit für den Service Bus-Namespace. | Der Premium-Tarif unterstützt die georedundante Notfallwiederherstellung und die Georeplikation auf Namespaceebene. Auf dieser Ebene bietet der Premium-Tarif Hochverfügbarkeit für die Notfallwiederherstellung von Metadaten. Dabei kommen primäre und sekundäre Namespaces für die Notfallwiederherstellung zum Einsatz. |
Stellen Sie sicher, dass verwandte Nachrichten in festgelegter Reihenfolge übermittelt werden. | Beachten Sie die Anforderung zum Festlegen eines Partitionsschlüssels, einer Sitzungs-ID oder einer Nachrichten-ID für jede Nachricht, um sicherzustellen, dass zugehörige Nachrichten an dieselbe Partition in der Messagingentität gesendet werden. |
Werten Sie verschiedene JMS-Features über die JMS-API aus. | Features, die über die JMS 2.0-API (und das Software Development Kit (SDK)) verfügbar sind, sind nicht mit den Features identisch, die über das native SDK verfügbar sind. Beispielsweise sind Service Bus-Sitzungen nicht in JMS verfügbar. |
Implementieren Sie Resilienz für die Behandlung vorübergehender Fehler beim Senden oder Empfangen von Nachrichten. | Es ist wichtig, eine geeignete Behandlung vorübergehender Fehler und Fehlerbehandlung für Sende- und Empfangsvorgänge zu implementieren, um den Durchsatz aufrechtzuerhalten und Nachrichtenverlust zu verhindern. |
Implementieren Sie die automatische Skalierung von Messagingeinheiten, um sicherzustellen, dass Genügend Ressourcen für Ihre Workloads verfügbar sind. |
Quellartefakte
Service Bus-Premium-Instanzen ohne private Endpunkte können mithilfe der folgenden Abfrage ermittelt werden:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and isempty(properties.privateEndpointConnections)
Verwenden Sie die folgende Abfrage, um Service Bus-Instanzen zu identifizieren, für die nicht der Premium-Tarif verwendet wird:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier != 'Premium'
Service Bus-Premium-Instanzen ohne Zonenredundanz können mithilfe der folgenden Abfrage ermittelt werden:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and properties.zoneRedundant == 'false'