Mit Eventarc können Sie ereignisgesteuerte und nachrichtenbasierte Architekturen erstellen, ohne die zugrunde liegende Infrastruktur implementieren, anpassen oder verwalten zu müssen.
Eventarc wird in zwei Editionen angeboten: Eventarc Advanced und Eventarc Standard. Beide Versionen bieten eine skalierbare, serverlose und vollständig verwaltete Eventing-Lösung, mit der Sie Ereignisse asynchron von Quellen zu Zielen weiterleiten können. Weitere Informationen finden Sie unter Eventarc Advanced oder Eventarc Standard auswählen.
Eventarc Advanced wurde entwickelt, um die Aufnahme, Orchestrierung und Zustellung von Ereignisdaten über Nachrichten zwischen Anwendungen, Diensten und Endpunkten zu vereinfachen. Mit Eventarc Advanced können Sie Ereignisse, die in einem System auftreten, erfassen und in einem zentralen Bus veröffentlichen. Interessierte Dienste können bestimmte Nachrichten abonnieren, indem sie Registrierungen erstellen. Sie können den Bus und eine Pipeline verwenden, um Ereignisse aus mehreren Quellen in Echtzeit weiterzuleiten, sie an mehrere Ziele zu senden und sie optional vor der Übermittlung an ein Ziel zu transformieren.
Eventarc Advanced ist ideal für Organisationen mit komplexen Ereignis- und Messaginganforderungen, insbesondere für solche, die mit der Verwaltung zahlreicher Pub/Sub-Themen, Kafka-Warteschlangen oder anderer Messagingsysteme von Drittanbietern zu kämpfen haben. Eventarc Advanced bietet Administratoren eine verbesserte und zentralisierte Sichtbarkeit und Kontrolle, sodass Organisationen mehrere Teams in verschiedenen Projekten verbinden können.
Sie können Eventarc Advanced über die Google Cloud -Konsole, über die Befehlszeile mit der Google Cloud CLI oder über die Eventarc API verwalten.
zwischen verschiedenen Diensten, Apps und Systemen empfangen, filtern, transformieren, weiterleiten und zustellen (zum Vergrößern auf das Diagramm klicken).
Wichtige Konzepte
Ein Bus bietet einen sichtbaren Endpunkt für Ereignisse und ist ein Router, der alle von Anbietern veröffentlichten Ereignisse empfängt und an null oder mehr Ziele weiterleitet. Mit einem Bus können Sie den Nachrichtenfluss durch Ihr System zentralisieren, überwachen und nachverfolgen. Sie können einen Bus verwenden, um Ereignisse aus vielen Quellen an viele Ziele weiterzuleiten.
Nachrichten, die an einem Bus eingehen, werden anhand der Kriterien einer Anmeldung ausgewertet. Diese steht für ein Abo für Ereignisse, die von einem bestimmten Bus erfasst werden. Die Ereignisse werden an Nutzer weitergeleitet, die diese bestimmten Ereignisse abonniert haben. Mit der Registrierung können Sie die Common Expression Language (CEL) verwenden, um detaillierte Richtlinien für die Zugriffssteuerung zu definieren, indem Sie Ereignisse anhand von Ereignisattributen abgleichen. Bei einer Registrierung können Sie auch die Pipeline angeben, an die übereinstimmende Ereignisse gesendet werden sollen.
Die Pipeline ist einem Bus und einem Ziel zur Übermittlung zwischengeschaltet. In der Pipeline wird ein Ziel angegeben. Außerdem haben Sie die Möglichkeit, alle übereinstimmenden Ereignisse vor ihrer Übermittlung an das Ziel umzuwandeln. Sie können verschiedene Ereignisstrukturen verarbeiten, da mehrere Nutzlastformate unterstützt werden und Sie Ereignisdaten im Handumdrehen anpassen können, ohne die Quell- oder Zieldienste zu ändern.
Hauptmerkmale
Eventarc Advanced unterstützt viele Anwendungsfälle für Zielanwendungen. Hier einige der wichtigsten Funktionen:
Anwendungsintegration im großen Maßstab: Sie können zahlreiche Dienste und Anwendungen verbinden und so die asynchrone Kommunikation über verschiedene Ereignisformate und ‑schemas hinweg ermöglichen.
Event-Streaming für KI und Analysen: Sie können den Datenfluss von IoT-Geräten und KI-Arbeitslasten verarbeiten und Ereignisse filtern, transformieren und anreichern, bevor Sie sie in Ihre Analyse-Pipelines einfügen.
Hybrid- und Multi-Cloud-Bereitstellungen: Sie können Ihre ereignisgesteuerten Architekturen über Google Cloudhinaus erweitern und in lokale Systeme und andere Cloud-Anbieter einbinden. Mit Eventarc Advanced können Sie Ereignisse aus verschiedenen Quellen weiterleiten, darunter Google-Quellen und direkte Herausgeber von Ereignissen.
Regionalität
Eventarc Advanced ist ein vollständig regionaler Dienst: Alle Eventarc Advanced-Daten und ‑Traffic müssen sich in derselben Region befinden. Für Registrierungen und Pipelines können beispielsweise nur Daten aus derselben Region wie der Bus gelesen und verarbeitet werden. Regionenübergreifende Unterstützung kann erreicht werden, indem Ereignisse in verschiedenen Regionen in verschiedenen Bussen veröffentlicht und ein Netzwerk innerhalb eines Service-Perimeters konfiguriert wird, der sich über mehrere Regionen erstreckt.
Projektlayouts
Alle Eventarc-Ressourcen müssen zu einem Google Cloud-Projekt gehören. Es ist jedoch nicht erforderlich, dass sich der Anbieter (Ereignisquelle), der Bus (Administrator) und die Pipeline (Ereignisziel) im selben Projekt befinden.
Sie können eine Kombination aus IAM-Berechtigungen (Identity and Access Management) verwenden, um die Ressourcennutzung zu steuern, den detaillierten Zugriff auf Daten mit CEL zu verwalten und Dienstperimeter zu nutzen, um Netzwerk- und Sicherheitsanforderungen für verschiedene Ingress- und Egress-Anforderungen zu erfüllen.
Ereignisse
Ein Ereignis ist ein Datensatz, der ein Vorkommen und seinen Kontext wiedergibt und eine Änderung an einer Ressource oder Umgebung angibt. Ein Ereignis ist eine von allen anderen Ereignissen unabhängige Kommunikationseinheit. Ein Ereignis kann z. B. eine Änderung von Daten in einer Datenbank, eine zu einem Speichersystem hinzugefügte Datei oder ein geplanter Auftrag sein.
Ein Ereignis ist auch eine Nachricht, die von einer Komponente ausgegeben wird, wenn sich ihr Status geändert hat. Wenn ein Ereignis eintritt, wird die Nachricht an die Eventing-Infrastruktur gesendet, wo sie von Nutzern abgerufen werden kann. Im Kontext der ereignisgesteuerten Architektur verwenden wir den Begriff Ereignis häufig für die Nachricht, die das Ereignis kommuniziert, und nicht für das Ereignis selbst (was tatsächlich passiert ist, um die Nachricht zu generieren).
Ereignistypen
Eventarc Advanced unterstützt Ereignisse, die direkt von einer Google-Quelle stammen.
Weitere Informationen finden Sie unter Von Eventarc unterstützte Google-Ereignistypen.
Ereignisanbieter und -ziele
Ereignisse werden von Eventarc Advanced von Ereignisanbietern erfasst und an ein Ereignisziel weitergeleitet. Für jede Eventarc Advanced-Pipeline kann nur ein Ziel als Ziel für weitergeleitete Nachrichten angegeben werden.
Zu den unterstützten Anbietern gehören Google-Anbieter und direkte Publisher von Veranstaltungen. Zu den unterstützten Zielen gehören Cloud Run, Cloud Run-Funktionen, HTTP-Endpunkte, die in einem Virtual Private Cloud-Netzwerk gehostet werden, Workflows und ein anderer Eventarc Advanced-Bus.
Weitere Informationen finden Sie unter Ereignisanbieter und -ziele.
Ereignisformat und Bibliotheken
Eventarc liefert unabhängig von der Quelle Ereignisse an das Ziel in einem CloudEvents-Format mithilfe einer HTTP-Anfrage im Binärinhaltsmodus. CloudEvents ist eine Spezifikation für die allgemeine Beschreibung von Ereignis-Metadaten.
Ziele wie Cloud Run-Funktionen und Cloud Run verwenden Ereignisse im HTTP-Format. Bei Workflows-Zielen konvertiert der Workflows-Dienst das Ereignis in ein JSON-Objekt und übergibt das Ereignis als Laufzeitargument an die Workflowausführung.
Die Verwendung einer Standardmethode zum Beschreiben von Ereignismetadaten sorgt für Konsistenz, Barrierefreiheit und Übertragbarkeit. Ereignisnutzer können diese Ereignisse direkt lesen, oder Sie können die Cloud-Clientbibliotheken in verschiedenen Sprachen (einschließlich C++, C#, Go, Java, Node.js, PHP, Python und Ruby) verwenden, um die Ereignisse zu lesen und zu parsen. Es gibt auch eine Reihe von sprachspezifischen CloudEvents SDKs.
Die Struktur des HTTP-Texts für alle Ereignisse ist im GitHub-Repository von Google CloudEvents verfügbar.
Zuverlässigkeit und Bereitstellung
Es gibt keine garantierte Reihenfolge der Bereitstellung, etwa nach dem Prinzip "First-in-First-out". Beachten Sie, dass eine strikte Reihenfolge die Verfügbarkeits- und Skalierbarkeitsfunktionen von Eventarc beeinträchtigen würde, die mit denen der Transportebene Pub/Sub übereinstimmen. Weitere Informationen finden Sie unter Nachrichten sortieren.
Latenz und Durchsatz sind Best-Effort. Sie variieren auf Basis verschiedener Faktoren: ob beim Veröffentlichen oder ausgehenden Traffic verschiedene Regionen beteiligt sind, der Konfiguration eines bestimmten Dienstes und der Netzwerkauslastung von Ressourcen in einer Google Cloud -Region.
Es gibt Nutzungskontingente und -limits, die im Allgemeinen für Eventarc gelten.
Richtlinie für Ereigniswiederholung
Die von Eventarc Advanced festgelegte Standardaufbewahrungsdauer für Nachrichten beträgt 24 Stunden mit einer exponentiellen Backoff-Verzögerung.
Eventarc Advanced verwendet den exponentiellen Backoff mit einer Verzögerung zum Behandeln von Fehlern, für die Wiederholungsversuche möglich sind. Dies beginnt mit einer Verzögerung von einer Sekunde. Die Verzögerung wird nach jedem fehlgeschlagenen Versuch verdoppelt (bis zu maximal 60 Sekunden und 5 Versuche).
Weitere Informationen finden Sie unter Wiederholungsereignisse.
Duplizierte Termine
Ereignis-Duplikate werden möglicherweise an Event-Handler gesendet. Gemäß der CloudEvents-Spezifikation wird die Kombination der Attribute source
und id
als eindeutig angesehen und daher werden alle Ereignisse mit derselben Kombination als Duplikate betrachtet.
Sie sollten idempotente Event-Handler als allgemeine Best Practice implementieren.
Beobachtbarkeit
Google Cloud Observability bietet Monitoring-, Logging- und Diagnosetools. Mit diesen Tools können Sie Eventarc-Aktivitäten und ‑Wachstum überwachen und analysieren sowie das Verhalten, den Zustand und die Leistung Ihrer Anwendungen nachvollziehen. Weitere Informationen finden Sie unter Beobachtbarkeit in Eventarc.
Detaillierte Logs für Eventarc, Cloud Run, Cloud Run Functions, Pub/Sub und Workflows sind über Cloud-Audit-Logs verfügbar.
Compliancestandards
Eventarc entspricht diesen Zertifizierungen und Standards.