Nachrichten veröffentlichen
Senden oder veröffentlichen Sie Nachrichten an einen Stream im Streaming-Service.
Sobald ein Stream erstellt wurde und aktiv ist, können Sie Nachrichten veröffentlichen. Weitere Informationen zur Veröffentlichung finden Sie unter Testnachricht in einem Stream veröffentlichen oder in der Entwicklerdokumentation für Streaming. Außerdem können Sie sich mit Partitionierung, großen Nachrichten und Batching und Throttling für zusätzlichen Kontext vertraut machen.
Sie können auch Oracle Cloud Infrastructure Connector Hub verwenden, um Daten aus unterstützten Quellservices, wie Logging, in einem Stream zu veröffentlichen.
Sie können zwar die Konsole verwenden, um Testnachrichten in einem Stream zu veröffentlichen, sollten aber die CLI, die API oder ein SDK verwenden, um den Stream aufzufüllen.
Informationen zum Veröffentlichen von Nachrichten mit den Oracle Cloud Infrastructure-(OCI-)SDKs finden Sie in der Entwicklerdokumentation für Streaming.
Wenn Sie die Kafka-Kompatibilität von Streaming nutzen, lesen Sie Mit Kafka und Streaming entwickeln.
Sie können auch Oracle Cloud Infrastructure Connector Hub verwenden, um Daten aus unterstützten Quellservices, wie Logging, in einem Stream zu veröffentlichen.
Nachrichten und Partitionen
Nachrichten werden in einer einzelnen Partition in einem Stream veröffentlicht. Wenn im Stream mehrere Partitionen vorhanden sind, hängt die Entscheidung, in welcher Partition die Nachricht veröffentlicht wird, davon ab, ob Ihre Produzenten die Streaming-API und PutMessages verwenden oder die Kafka-Kompatibilität in Streaming und die Kafka-API nutzen.
Wenn Ihre Producers die Streaming-API verwenden, wird die Partitionierung serverseitig vom Streaming-Service abgewickelt. Wenn Ihre Producers die Kafka-API verwenden, wird die Partitionierung clientseitig von Kafka übernommen.
Serverseitige Partitionierung
Die Partition, in der eine Nachricht veröffentlicht wird, wird anhand des Nachrichtenschlüssels berechnet. Wenn der Schlüssel Null ist, wird die Partition mit einem zufälligen 16-Byte-Wert berechnet. Sie können nicht angeben, welche Partition ein Schlüssel verwendet.
Wenn Sie einen Nullschlüssel übergeben, wird die Nachricht in eine zufällig ausgewählte Partition eingefügt. Wenn ein Benutzer dieselbe Nachricht zweimal veröffentlicht, kann diese an verschiedene Partitionen geleitet werden, weil ein völlig neuer Schlüssel generiert wird. Es wird nicht erwartet, dass alle Nachrichten mit einem Nullschlüssel an dieselbe Partition gesendet werden. Um sicherzustellen, dass Nachrichten mit demselben Wert an dieselbe Partition gesendet werden, verwenden Sie denselben Schlüssel für diese Nachrichten.
Weitere Informationen finden Sie unter In Partitionen veröffentlichen.
Große Nachrichten verarbeiten
Wenn Ihre Nachrichten das Limit von 1 MB überschreiten, können Sie entweder das Chunking verwenden oder die Nachricht mit Oracle Cloud Infrastructure Object Storage senden.
- Chunking: Sie können große Payloads in mehrere kleinere Chunks aufteilen, die der Streaming-Service akzeptieren kann. Die Chunks werden im Service auf dieselbe Weise gespeichert wie normale Nachrichten (ohne Chunking). Der einzige Unterschied besteht darin, dass der Consumer die Chunks behalten und in der Nachricht kombinieren muss, wenn alle Chunks gesammelt wurden. Die Chunks in der Partition können mit normalen Nachrichten vermischt werden.
-
Object Storage: Eine große Payload wird in Object Storage abgelegt, und nur der Zeiger auf diese Daten wird übertragen. Der Empfänger erkennt diesen Typ von Zeiger-Payload, liest die Daten transparent aus Object Storage und stellt sie dem Endbenutzer zur Verfügung.
Batching und Throttling
Wir empfehlen das Batching von Nachrichten, um Throttling zu vermeiden und einen besseren Durchsatz zu ermöglichen. Die Größe eines Nachrichtenbatches darf 1 MB nicht überschreiten. Wenn dieses Limit überschritten wird, kann die Nachricht nicht validiert werden.
Der Throttling-Mechanismus für PutMessages wird aktiviert, wenn Datenschreibraten 1 MB pro Sekunde pro Partition überschreiten. Die Anzahl der Schreibvorgänge in einen Stream ist nicht begrenzt, solange Sie unter dem Durchsatz von 1 MB pro Sekunde pro Partition liegen.
Weitere Informationen finden Sie unter Limits für Streaming-Ressourcen.
Erforderliche IAM-Policy
Um Oracle Cloud Infrastructure verwenden zu können, muss ein Administrator Mitglied einer Gruppe sein, der von einem Mandantenadministrator Sicherheitszugriff in einer Policy erteilt wurde. Dieser Zugriff ist unabhängig davon erforderlich, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie eine Nachricht erhalten, dass Sie keine Berechtigung haben oder nicht autorisiert sind, fragen Sie den Mandantenadministrator, welcher Zugriffstyp Ihnen erteilt wurde und in welchem Compartment Ihr Zugriff funktioniert.
Für Administratoren: Mit der unter Verwalten von Streaming-Ressourcen durch Streaming-Administratoren zulassen beschriebenen Policy kann die angegebene Gruppe alle Aktionen mit Streaming und zugehörigen Streaming-Serviceressourcen ausführen.
Wenn Sie mit Policys noch nicht vertraut sind, finden Sie weitere Informationen unter Überblick über IAM-Policys. Weitere Informationen zum Schreiben von Policys für den Streaming-Service finden Sie unter Details zum Streaming-Service in der IAM-Policy-Referenz und Auf Streaming-Ressourcen mandantenübergreifend zugreifen.