Pubblicazione di messaggi
Emettere o pubblicare messaggi in un flusso nel servizio di streaming.
Una volta che il flusso viene creato ed è attivo, puoi pubblicare i messaggi. Per ulteriori informazioni sulla pubblicazione, vedere Publishing a Test Message to a Stream o Developer Guide to Streaming e acquisire familiarità con partitioning, large messages e batching and throttling.
È inoltre possibile utilizzare Oracle Cloud Infrastructure Connector Hub per pubblicare i dati in un flusso dai servizi di origine supportati, ad esempio Log.
Sebbene sia possibile utilizzare la console per pubblicare messaggi di test in un flusso, è consigliabile utilizzare l'interfaccia CLI, l'API o un SDK per popolare il flusso.
Per pubblicare messaggi utilizzando gli SDK OCI (Oracle Cloud Infrastructure), consulta la Guida per gli sviluppatori allo streaming.
Se si trae vantaggio dalla compatibilità Kafka di Streaming, vedere Sviluppo con Kafka e Streaming.
È inoltre possibile utilizzare Oracle Cloud Infrastructure Connector Hub per pubblicare i dati in un flusso dai servizi di origine supportati, ad esempio Log.
Messaggi e partizioni
I messaggi vengono pubblicati in una singola partizione in un flusso. Se nel flusso sono presenti più partizioni, la decisione di quale partizione pubblicare il messaggio dipende dal fatto che i producer stiano utilizzando l'API di streaming e PutMessages oppure sfruttando la compatibilità Kafka in Streaming e utilizzando l'API Kafka.
Se i produttori utilizzano l'API di streaming, il partizionamento viene gestito lato server dal servizio di streaming. Se i produttori utilizzano l'API Kafka, il partizionamento viene gestito sul lato client da Kafka.
Partizionamento lato server
La partizione in cui viene pubblicato un messaggio viene calcolata mediante la chiave del messaggio. Se la chiave è nulla, la partizione viene calcolata utilizzando un valore casuale di 16 byte. Impossibile specificare la partizione utilizzata da una chiave.
Se si passa una chiave nulla, il messaggio viene inserito in una partizione casuale. Se un utente pubblica lo stesso messaggio due volte, potrebbe passare a partizioni diverse, perché viene generata una chiave completamente nuova. Non aspettatevi che tutti i messaggi con una chiave nulla passino alla stessa partizione. Per assicurarsi che i messaggi con lo stesso valore vengano inseriti nella stessa partizione, utilizzare la stessa chiave per tali messaggi.
Per ulteriori informazioni, vedere Pubblicazione nelle partizioni.
Gestione di messaggi di grandi dimensioni
Se i messaggi superano il limite di 1 MB, puoi utilizzare la creazione di chunk o inviare il messaggio utilizzando Oracle Cloud Infrastructure Object Storage.
- Chunking: è possibile suddividere payload di grandi dimensioni in più chunk più piccoli che il servizio Streaming può accettare. I chunk vengono memorizzati nel servizio nello stesso modo in cui vengono memorizzati i normali messaggi (non in chunk). L'unica differenza è che il consumatore deve tenere i pezzi e combinarli nel messaggio quando tutti i pezzi sono stati raccolti. I pezzi nella partizione possono essere intrecciati con messaggi ordinari.
-
Storage degli oggetti: un payload di grandi dimensioni viene posizionato nello storage degli oggetti e viene trasferito solo il puntatore a tali dati. Il destinatario riconosce questo tipo di payload del puntatore, legge in modo trasparente i dati dallo storage degli oggetti e li fornisce all'utente finale.
Batch e limitazione
Si consiglia di eseguire il batch dei messaggi per evitare limitazioni e migliorare il throughput. La dimensione di un batch di messaggi non deve superare 1 MB. Se questo limite viene superato, la convalida del messaggio non riesce.
Il meccanismo di limitazione per PutMessages viene attivato quando le velocità di scrittura dei dati superano 1 MB al secondo per partizione. Non c'è limite al numero di scritture in un flusso, a condizione che tu sia sotto gli 1 MB al secondo per throughput di partizione.
Per ulteriori informazioni, vedere Limiti per le risorse di streaming.
Criteri IAM necessari
Per utilizzare Oracle Cloud Infrastructure, un amministratore deve essere un membro di un gruppo a cui è stato concesso l'accesso di sicurezza in un criterio da un amministratore della tenancy. Questo accesso è necessario se si utilizza la console o l'API REST con un SDK, un'interfaccia CLI o un altro strumento. Se viene visualizzato un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, verificare con l'amministratore della tenancy il tipo di accesso di cui si dispone e il compartimento in cui funziona l'accesso.
Per gli amministratori: il criterio in Consenti agli amministratori di streaming di gestire le risorse di streaming consente al gruppo specificato di eseguire qualsiasi operazione con le risorse del servizio di streaming e di streaming correlate.
Se non conosci i criteri, consulta la Panoramica sui criteri IAM. Per ulteriori informazioni sulla scrittura dei criteri per il servizio di streaming, vedere Dettagli per il servizio di streaming nel riferimento ai criteri IAM e Accesso alle risorse di streaming tra tenancy.