Freigeben über


Übersicht über den Azure Event Hubs-Emulator

Der Azure Event Hubs-Emulator bietet eine lokale Entwicklungsumgebung für den Event Hubs-Dienst. Sie können den Emulator verwenden, um Code für den Dienst isoliert und ganz ohne Cloudeinflüsse zu entwickeln und zu testen.

Vorteile

Die Verwendung des Emulators bietet die folgenden Hauptvorteile:

  • Lokale Entwicklung: Der Emulator bietet eine lokale Entwicklungsumgebung, sodass Sie offline arbeiten und Netzwerkwartezeit vermeiden können.
  • Kosteneffizienz: Mit dem Emulator können Sie Ihre Anwendungen testen, ohne dass dabei Kosten für die Cloudnutzung anfallen.
  • Isolierte Testumgebung: Sie können Ihren Code isoliert testen und so sicherstellen, dass die Tests nicht durch andere Aktivitäten in der Cloud beeinflusst werden.
  • Optimierte innere Entwicklungsschleife: Sie können den Emulator verwenden, um schnell Prototypen für Ihre Anwendungen zu erstellen und Ihre Anwendungen zu testen, bevor Sie sie in der Cloud bereitstellen.

Hinweis

Der Event Hubs-Emulator ist im Rahmen der Microsoft-Software-Lizenzbedingungen verfügbar.

Features

Der Emulator bietet folgende Features:

  • Containerisierte Bereitstellung: Er wird als (Linux-basierter) Docker-Container ausgeführt.
  • Plattformübergreifende Kompatibilität: Der Emulator kann auf allen Plattformen verwendet werden, einschließlich Windows, macOS und Linux.
  • Konfigurierbarkeit: Sie können die Anzahl von Event Hubs, Partitionen und anderen Entitäten mithilfe der bereitgestellten JSON-Konfiguration verwalten.
  • Streamingunterstützung: Unterstützt Streamingereignisse mithilfe von Kafka und Advanced Message Queuing Protocol (AMQP).
  • Einblick: Der Emulator bietet Einblickfeatures wie Konsolen- und Dateiprotokollierung.

Bekannte Einschränkungen

Für die aktuelle Version des Emulators gelten folgende Einschränkungen:

  • Bei Verwendung von Kafka sind nur Producer- und Consumer-APIs mit dem Event Hubs-Emulator kompatibel.

  • In der Kafka-Konfiguration können securityProtocol und saslmechanism nur die folgenden Werte aufweisen:

      SecurityProtocol = SecurityProtocol.SaslPlaintext,
      SaslMechanism = SaslMechanism.Plain
    
  • Der Emulator unterstützt keine Verwaltungsvorgänge während der Ausführung über ein clientseitiges SDK.

Hinweis

Nach einem Containerneustart bleiben Daten und Entitäten im Emulator nicht erhalten.

Unterschiede zum Clouddienst

Da der Event Hubs-Emulator nur für Dev/Test-Zwecke vorgesehen ist, gibt es Funktionsunterschiede zwischen dem Emulator und dem Clouddienst.

Folgende allgemeine Features werden vom Emulator nicht unterstützt:

  • Azure-Features wie VNet-Integration, Microsoft Entra ID-Integration, Aktivitätsprotokolle und ein Benutzeroberflächenportal
  • Event Hubs Capture
  • Features für die Ressourcensteuerung (beispielsweise Anwendungsgruppen)
  • Autoskalierungsfunktionen
  • Funktionen für die georedundante Notfallwiederherstellung
  • Integration der Schemaregistrierung
  • Visuelle Metriken und Warnungen

Hinweis

Der Emulator ist ausschließlich für Dev/Test-Szenarien vorgesehen. Von einer Verwendung in Produktionsszenarien wird abgeraten. Wir bieten keinen offiziellen Support für den Emulator.

Melden Sie alle Probleme oder Vorschläge im GitHub-Installer-Repository des Emulators.

Nutzungskontingente

Der Emulator stellt genau wie der Event Hubs-Clouddienst folgende Kontingente für die Verwendung bereit:

Eigenschaft Wert Innerhalb der Grenzwerte vom Benutzer konfigurierbar
Anzahl unterstützter Namespaces 1 No
Maximale Anzahl von Event Hubs in einem Namespace 10 Ja
Maximale Anzahl von Consumergruppen in einem Event Hub 20 Ja
Maximale Anzahl von Partitionen in einem Event Hub 32 Ja
Maximale Größe eines Ereignisses, das im Event Hub veröffentlicht wird (Batch/kein Batch) 1 MB No
Minimale Aufbewahrungsdauer für Ereignisse 1 Std. No

Änderungen an der Kontingentkonfiguration

Standardmäßig wird der Emulator mit der Konfigurationsdatei config.json ausgeführt. Sie können die mit Event Hubs verknüpften Kontingente konfigurieren, indem Sie diese Datei gemäß Ihren Anforderungen wie folgt bearbeiten:

  • Entitäten: Sie können weitere Entitäten (Event Hubs) mit einer angepassten Anzahl von Partitionen und Consumergruppen gemäß den unterstützten Kontingenten hinzufügen.
  • Protokollierung: Der Emulator unterstützt die Protokollierung in einer Konsole und/oder in einer Datei. Verwenden Sie die Option, die am besten zu Ihren persönlichen Präferenzen passt.

Wichtig

Änderungen müssen vor dem Ausführen des Emulators in der JSON-Konfiguration angegeben werden. Änderungen während der Ausführung werden nicht berücksichtigt. Damit Änderungen wirksam werden, muss der Container neu gestartet werden.

Der vordefinierte Namespace (name) in der Konfigurationsdatei kann nicht umbenannt werden.

Protokolle zum Debuggen

Während des Testens helfen Ihnen Konsolen- oder Dateiprotokolle beim Debuggen unerwarteter Fehler. So überprüfen Sie die Protokolle

  • Konsolenprotokolle: Wählen Sie auf der Desktopbenutzeroberfläche von Docker den Containernamen aus.
  • Dateiprotokolle: Navigieren Sie im Container zu /home/app/EmulatorLogs.

Ausführen lokaler Tests mithilfe des Azure Event Hubs-Emulators