Pubblicazione di messaggi
Emettere o pubblicare messaggi in un flusso nel servizio di streaming.
Una volta che il flusso viene creato e attivo, puoi pubblicare i messaggi. Per informazioni dettagliate sulla pubblicazione, vedere Pubblicazione di un messaggio di test in un flusso o la Guida per gli sviluppatori allo streaming e acquisire familiarità con il partizionamento, i messaggi di grandi dimensioni e il batching e limitazione per un contesto aggiuntivo.
Puoi anche 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 di Oracle Cloud Infrastructure (OCI), consulta la Guida per gli sviluppatori allo streaming.
Se si sfrutta la 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 della partizione in cui pubblicare il messaggio dipende dal fatto che i producer stiano utilizzando l'API di streaming e PutMessages oppure dall'utilizzo della compatibilità Kafka nello streaming e dell'utilizzo dell'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 ricevitore 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 sulle risorse di streaming.
Criteri IAM necessari
Per utilizzare Oracle Cloud Infrastructure, un amministratore deve essere membro di un gruppo a cui è stato concesso l'accesso di sicurezza in un criterio da un amministratore della tenancy. Questo accesso è necessario, indipendentemente dal fatto che si stia utilizzando la console o l'API REST con un SDK, un'interfaccia CLI o unaltro 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.
Per informazioni nuove sui criteri, vedere Panoramica dei 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.