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

Consumers können Nachrichten explizit lesen, indem sie Partition und Offset angeben, oder als Mitglied einer Consumer-Gruppe, die den Konsum eines gesamten Streams durch die Mitglieder der Gruppe koordiniert.
Hinweis

Sehen Sie sich ein Einführungsvideo zum Streaming-Service an.

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.