Überblick über Streaming
Der Oracle Cloud Infrastructure Streaming-Service bietet eine vollständig verwaltete, skalierbare und dauerhafte Lösung zum Aufnehmen und Konsumieren von hochvolumigen Datenstreams in Echtzeit. Verwenden Sie Streaming für jeden Anwendungsfall, bei dem Daten kontinuierlich und sequenziell in einem Publish/Subscribe-Messagingmodell erzeugt und verarbeitet werden.
Anwendungsfälle für Streaming:
- Messaging
- Sie können mit Streaming die Komponenten großer Systeme entkoppeln. Producers und Consumers können Streaming als asynchronen Nachrichtenbus verwenden und unabhängig und in ihrem eigenen Tempo handeln.
- Metrik- und Logerfassung
- Nutzen Sie Streaming als Alternative für traditionelle Datei-Scraping-Ansätze. So werden kritische Betriebsdaten schneller für Indexierung, Analyse und Visualisierung verfügbar gemacht.
- Aufnahme von Web- oder App-Aktivitätsdaten
- Erfassen Sie mit Streaming die Aktivitäten von Websites oder Apps, wie Pageviews, Suchvorgänge oder andere Benutzeraktionen. Sie können diese Informationen für Echtzeitmonitoring und -analyse sowie in Data-Warehousing-Systemen für Offlineverarbeitung und -berichterstattung nutzen.
- Verarbeitung von Infrastruktur- und App-Ereignissen
- Verwenden Sie Streaming als zentralen Einstiegspunkt für Cloud-Komponenten zur Erfassung von Lebenszyklusereignissen für Audits, Buchhaltung und damit zusammenhängende Aktivitäten.
Streaming-Features
Streaming bietet die folgenden Features:
- Vollständig verwaltet
- Streaming wird vollständig verwaltet, von der zugrunde liegenden Infrastruktur bis hin zu Provisioning, Deployment, Wartung, Sicherheitspatching und Replikation. Die Integration mit Monitoring und Standardmetriken vereinfacht den Betrieb.
Oracle verwaltet Streampartitionen, und Consumer-Gruppen können Ihre Nachrichten-Offsets verarbeiten.
- Dauerhaftigkeit und Verfügbarkeit
- Im Streaming-Service veröffentlichte Nachrichten werden synchron über drei Availability-Domains repliziert, wenn diese verfügbar sind. In Regionen mit einer einzelnen Availability-Domain werden die Daten über mehrere Faultdomains hinweg repliziert. Dadurch wird sichergestellt, dass selbst der Ausfall einer Availability-Domain oder Faultdomain zu keinem Datenverlust führt. So erhalten Sie extrem dauerhafte Daten.
Oracle Cloud Infrastructure bietet ein Service Level Agreement (SLA) für Streaming. Weitere Einzelheiten finden Sie auf der Seite für Oracle Cloud Infrastructure-Service Level Agreements.
- Sicherheit
-
Streamingdaten werden sowohl im Ruhezustand als auch während der Übertragung verschlüsselt, um die Nachrichtenintegrität sicherzustellen. Sie können die Verschlüsselung Oracle überlassen oder den Oracle Cloud Infrastructure Vault-Service verwenden, um Ihre eigenen Verschlüsselungsschlüssel sicher zu speichern und zu verwalten, wenn Sie bestimmte Compliance- oder Sicherheitsstandards erfüllen müssen.
Dank der Integration mit Oracle Cloud Infrastructure Identity and Access Management (IAM) können Sie steuern, wer und welche Services auf welche Schlüssel zugreifen können und welche Aktionen mit diesen Ressourcen zulässig sind.
Private Endpunkte schränken den Zugriff auf ein angegebenes virtuelles Cloud-Netzwerk (VCN) in Ihrem Mandanten ein, sodass nicht über das Internet auf die Streams zugegriffen werden kann.
Weitere Informationen finden Sie unter Sicherheit - Best Practices für Streaming.
- Streamverarbeitung
- Durch die Integration von Streaming mit Oracle Cloud Infrastructure Connector Hub können Sie einen Stream als Datenquelle angeben, mit Oracle Cloud Infrastructure Functions die Nachrichten des Streams transformieren und die transformierten Nachrichten an Object Storage oder ein anderes unterstütztes Connector Hub-Ziel ausgeben, während die Ordnungsgarantien von Streaming beibehalten werden.
- Kafka-Kompatibilität
- Mit Streaming können Sie das Setup, die Wartung und die Verwaltung der Infrastruktur auslagern, die für das Hosting Ihres eigenen Apache Kafka-Clusters erforderlich ist.
Streaming ist mit den meisten Kafka-APIs kompatibel. So können Sie für Kafka geschriebene Anwendungen verwenden, um Nachrichten an den Streaming-Service zu senden und von ihm zu empfangen, ohne Ihren Code neu schreiben zu müssen. Weitere Informationen finden Sie unter Kafka-APIs verwenden.
Streaming nutzt auch das Kafka Connect-Ökosystem für die direkte Verbindung mit First-Party- und Third-Party-Produkten über Kafka-Quell- und -Sink-Connectors, die out-of-the-box verfügbar sind. Weitere Informationen finden Sie unter Kafka Connect verwenden.
So funktioniert Streaming
So funktioniert Streaming:
Ein Producer veröffentlicht Nachrichten in einem Stream. Dabei handelt es sich um ein Append-only-Log. Diese Nachrichten werden zur Skalierbarkeit auf von Oracle verwaltete Partitionen verteilt.
Mit Partitionen können Sie einen Stream verteilen, indem Sie Nachrichten auf mehrere Knoten (oder Broker) verteilen. Jede Partition kann auf einem separaten Rechner platziert werden, damit mehrere Consumers einen Stream parallel lesen können.
Ein Consumer liest Nachrichten aus einer oder mehreren Partitionen. Consumers können Daten von jeder Partition aus lesen, unabhängig davon, wo die Partition gehostet wird. Jede Nachricht innerhalb eines Streams wird mit einem Offset-Wert markiert, sodass ein Consumer bei einer Unterbrechung an derselben Stelle fortfahren kann. Nachrichten von einer Partition werden garantiert in derselben Reihenfolge übermittelt, in der sie erzeugt wurden.
Weitere Informationen finden Sie unter:
Streaming-Konzepte
Die folgenden Konzepte sind für das Verständnis von Streaming und die Arbeit damit von wesentlicher Bedeutung.
- Stream
- Ein partitioniertes Append-only-Nachrichtenlog.
- Streampool
-
Eine Gruppierung, mit der Sie Streams organisieren und verwalten können, einschließlich gemeinsamer Kafka- oder Sicherheitseinstellungen.
- Partition
- Ein Abschnitt eines Streams. Mit Partitionen können Sie einen Stream verteilen, indem Sie Nachrichten auf mehrere Knoten aufteilen. Dadurch können mehrere Consumers auch parallel aus einem Stream lesen.
- Cursor
-
Ein Zeiger auf eine Position in einem Stream. Bei dieser Position kann es sich um einen Zeiger auf einen bestimmten Offset oder eine bestimmte Zeit in einer Partition oder auf die aktuelle Position einer Gruppe handeln.
- Nachricht
- Eine Base64-codierte Nachricht, die in einem Stream veröffentlicht wird. Streaming ist schemaunabhängig und akzeptiert jedes Nachrichtenformat, einschließlich XML, JSON, CSV und sogar komprimierte Formate wie GZIP. Producers und Consumers sollten sich auf ein Nachrichtenformat einigen.
- Producer
- Eine Entity, die Nachrichten in einem Stream veröffentlicht.
- Consumer
- Eine Entity, die Nachrichten aus einem oder mehreren Streams liest.
- Consumer-Gruppe
- Ein Set von Instanzen, die Nachrichten von allen Partitionen in einem Stream koordiniert konsumieren. Die Nachrichten einer bestimmten Partition können jeweils immer nur von einem einzelnen Consumer in der Gruppe konsumiert werden.
- Instanz
- Ein Mitglied einer Consumer-Gruppe. Instanzen werden beim Erstellen eines Gruppencursors definiert. Die Gruppenmitgliedschaft wird durch Interaktion bestimmt. Fehlende Interaktion führt zu einem Timeout, sodass die Instanz aus der Consumer-Gruppe entfernt wird.
- Schlüssel
- Eine ID, mit der zusammengehörige Nachrichten gruppiert werden können.
- Offset
- Die Position einer Nachricht innerhalb einer Partition. Jede Nachricht innerhalb der Partition wird durch ihren Offset identifiziert. Consumers können Nachrichten ab einem beliebigen ausgewählten Offset lesen. Mit dem Offset können Sie den Lesevorgang aus einem Stream nach einer Unterbrechung neu starten.
Vorteile von Streams
Streams bieten mehrere Vorteile gegenüber herkömmlichen Messagingqueues, darunter:
- Konfigurierbare Nachrichtenpersistenz
- Sie steuern, wie lange Ihre Daten aufbewahrt werden. Nachrichten in einem Stream sind unveränderbar und stehen für die gesamte konfigurierte Aufbewahrungszeit des Streams zur Verfügung.
- Wiederholung
- Da die Nachrichten eines Streams nicht sofort entfernt werden, wenn sie von Consumers verarbeitet wurden, können Sie alle Nachrichten im Stream jederzeit innerhalb des konfigurierten Aufbewahrungslimits erneut wiederholen.
- Nachrichtengarantien
- Jede Nachricht wird garantiert mindestens einmal übermittelt. In einigen Fällen, z.B. wenn ein Consumer Nachrichten nicht festschreibt, bevor er offline geht, können Nachrichten mehrmals übermittelt werden.
- Anordnungsgarantien
- Nachrichten in einem Stream werden pro Partition immer in derselben Reihenfolge übermittelt, in der sie erzeugt wurden.
- Clientseitige Cursor
- Ihre Clientanwendungen steuern und verfolgen, welche Nachrichten gelesen werden, und können den Cursor für maximale Flexibilität nach Bedarf verschieben.
- Horizontale Skalierung
- Partitionen bieten die Möglichkeit, den Durchsatz vertikal zu skalieren, um die Anforderungen mehrerer Consumers zu erfüllen. So erhalten Sie mehr Flexibilität.
- Consumer-Gruppen
- Consumer-Gruppen übernehmen die gesamte Koordination, die für die ausgewogene Übermittlung von Nachrichten an mehrere Consumer erforderlich ist. Da dieses Management von einer Consumer-Gruppe im Namen aller Mitglieder übernommen wird, profitieren Sie von einem geringeren Gemeinkosten- und Betriebsaufwand.