Ü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.
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.
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.
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
undsaslmechanism
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.
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.
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 |
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.
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