Panoramica di streaming

Il servizio Oracle Cloud Infrastructure Streaming offre una soluzione completamente gestita, scalabile e duratura per l'inclusione e l'utilizzo di flussi di dati ad alto volume in tempo reale. Utilizza lo streaming per qualsiasi caso d'uso in cui i dati vengono prodotti ed elaborati in modo continuo e sequenziale in un modello di messaggistica di pubblicazione/sottoscrizione.

È possibile utilizzare lo streaming per:

Messaging
Utilizzare la funzionalità di streaming per scollegare i componenti di sistemi di grandi dimensioni. I produttori e i consumatori possono utilizzare lo streaming come bus di messaggi asincrono e agire in modo indipendente e secondo i propri ritmi.
Inclusione di metriche e log
Utilizza la funzionalità di streaming come alternativa agli approcci tradizionali all'estrazione dei file per rendere disponibili i dati operativi strategici più rapidamente per l'indicizzazione, l'analisi e la visualizzazione.
Inclusione dei dati sull'attività da Web o mobile
Utilizza lo streaming per acquisire attività da siti Web o applicazioni mobile, ad esempio visualizzazioni di pagina, ricerche o altre azioni utente. È possibile utilizzare queste informazioni per il monitoraggio e l'analitica in tempo reale e nei sistemi di data warehouse per l'elaborazione e i report offline.
Elaborazione degli eventi dell'infrastruttura e delle applicazioni
Utilizza la funzionalità di streaming come punto di accesso unificato per i componenti cloud per segnalarne gli eventi del ciclo di vita ai fini dell'audit, della contabilità e delle attività correlate.

Funzioni per lo streaming

Streaming fornisce le seguenti caratteristiche:

Completamente gestito
Il servizio di streaming è completamente gestito, dall'infrastruttura di base al provisioning, alla distribuzione, alla manutenzione, all'applicazione di patch di sicurezza e alla replica. L'integrazione con il monitoraggio e le metriche predefinite semplificano le operazioni.

Oracle gestisce le partizioni di flusso e i gruppi di consumer possono gestire gli offset dei messaggi.

Durata e disponibilità
I messaggi pubblicati nel servizio di streaming vengono replicati in modo sincrono in tre domini di disponibilità, se disponibili. Nelle aree con un singolo dominio di disponibilità, i dati vengono replicati su più domini di errore. Ciò garantisce che anche l'errore di un dominio di disponibilità o di un dominio di errore non comporti la perdita di dati. Il risultato sono dati altamente duraturi.

Oracle Cloud Infrastructure fornisce un service-level agreement (SLA) per lo streaming. Per i dettagli, consulta la pagina Service Level Agreement di Oracle Cloud Infrastructure.

Sicurezza

I dati in streaming vengono cifrati sia in archivio che in transito, garantendo l'integrità dei messaggi. Puoi consentire a Oracle di gestire la cifratura o utilizzare il servizio Oracle Cloud Infrastructure Vault per memorizzare e gestire in modo sicuro le tue chiavi di cifratura se devi soddisfare standard specifici di conformità o sicurezza.

L'integrazione con Oracle Cloud Infrastructure Identity and Access Management (IAM) ti consente di controllare chi e quali servizi possono accedere a quali chiavi e cosa possono fare con tali risorse.

Gli endpoint privati limitano l'accesso a una rete cloud virtuale (VCN) specificata all'interno della tenancy in modo che non sia possibile accedere ai relativi flussi tramite Internet.

Per ulteriori informazioni, vedere Best practice di sicurezza per lo streaming.

Elaborazione dei flussi
L'integrazione di Streaming con Oracle Cloud Infrastructure Connector Hub significa che è possibile designare un flusso come origine dati, utilizzare Oracle Cloud Infrastructure Functions per trasformare i messaggi del flusso e inviare i messaggi trasformati in Object Storage o in qualsiasi altra destinazione Connector Hub supportata pur mantenendo le garanzie degli ordini di Streaming.
Compatibilità con Kafka
Il servizio di streaming consente di scaricare l'impostazione, la manutenzione e la gestione dell'infrastruttura richiesta dall'hosting del cluster Apache Kafka.

Il servizio di streaming è compatibile con la maggior parte delle API Kafka e ti consente di utilizzare le applicazioni scritte per Kafka per inviare e ricevere messaggi dal servizio di streaming senza dover riscrivere il codice. Per ulteriori informazioni, vedere Utilizzo delle interfacce API Kafka.

Lo streaming sfrutta anche l'ecosistema Kafka Connect per interfacciarsi direttamente con prodotti di prime parti e di terze parti utilizzando connettori di origine e sink Kafka pronti all'uso. Per ulteriori informazioni, vedere Utilizzo di Kafka Connect.

Funzionamento dello streaming

Ecco come funziona lo streaming:

Un produttore pubblica messaggi in un flusso, che è un log di sola aggiunta. Questi messaggi vengono distribuiti tra le partizioni gestite da Oracle per garantire la scalabilità.

Le partizioni consentono di distribuire un flusso suddividendo i messaggi su più nodi (o broker). Ogni partizione può essere posizionata su un computer separato, consentendo a più consumer di leggere un flusso in parallelo.

Un consumatore legge i messaggi di una o più partizioni. I consumer possono leggere da qualsiasi partizione, indipendentemente dalla posizione in cui si trova la partizione. Ogni messaggio all'interno di un flusso viene contrassegnato con un valore offset, in modo che un consumer possa riprendere da dove era stato interrotto in caso di interruzione. I messaggi provenienti da una partizione sono garantiti per essere consegnati nello stesso ordine in cui sono stati prodotti.

I consumer possono leggere i messaggi in modo esplicito fornendo la partizione e l'offset oppure come membro di un gruppo di consumatori, che coordina il consumo di un intero flusso da parte dei membri del gruppo.
Nota

Guarda un'introduzione video al servizio di streaming.

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.

Concetti di streaming

I seguenti concetti sono essenziali per comprendere e utilizzare lo streaming.

stream
Log dei messaggi partizionato di sola aggiunta.
pool di flussi

Raggruppamento che è possibile utilizzare per organizzare e gestire i flussi, incluse le impostazioni Kafka o di sicurezza condivise.

partizione
Sezione di un flusso. Le partizioni consentono di distribuire un flusso suddividendo i messaggi su più nodi. Ciò consente inoltre a più consumer di leggere da un flusso in parallelo.
cursore

Puntatore a una posizione in un flusso. Questa posizione può essere un puntatore a un offset o ora specifici in una partizione o alla posizione corrente di un gruppo.

messaggio
Messaggio con codifica Base64 pubblicato in un flusso. Lo streaming è indipendente dallo schema e accetta qualsiasi formato di messaggio, inclusi XML, JSON, CSV e persino formati compressi come gzip. I produttori e i consumatori devono concordare il formato del messaggio.
produttore
Entità che pubblica i messaggi in un flusso.
consumer
Entità che legge i messaggi da uno o più flussi.
gruppo di consumer
Set di istanze che si coordinano per utilizzare i messaggi di tutte le partizioni in un flusso. In qualsiasi momento, i messaggi di una partizione specifica possono essere utilizzati solo da un singolo consumer del gruppo.
istanza
Membro di un gruppo di consumer. Le istanze vengono definite quando viene creato un cursore di gruppo. L'appartenenza al gruppo viene mantenuta tramite l'interazione; la mancanza di interazione comporta un timeout, rimuovendo l'istanza dal gruppo di consumer.
chiave
Identificativo utilizzato per raggruppare i messaggi correlati.
offset
La posizione di un messaggio all'interno di una partizione. Ogni messaggio all'interno della partizione è identificato dal suo offset. I consumer possono leggere i messaggi a partire da qualsiasi offset scelto. È possibile utilizzare l'offset per riavviare la lettura da un flusso se interrotto.

Vantaggi dei flussi

I flussi hanno diversi vantaggi rispetto alle code di messaggistica tradizionali, tra cui:

Persistenza dei messaggi configurabile
L'utente controlla la durata della conservazione dei dati. I messaggi in un flusso sono immutabili e disponibili per l'intera durata di conservazione configurata del flusso.
Ripete
Poiché i messaggi di un flusso non vengono rimossi immediatamente quando vengono elaborati dai consumer, è possibile riprodurre tutti i messaggi nel flusso in qualsiasi momento entro il limite di conservazione configurato.
Garanzie messaggio
Ogni messaggio è garantito per essere consegnato almeno una volta. In alcuni casi, ad esempio il mancato commit dei messaggi da parte di un consumatore prima di passare alla modalità non in linea, i messaggi potrebbero essere consegnati più volte.
Garanzie ordine
I messaggi all'interno di un flusso, per partizione, vengono sempre consegnati nello stesso ordine in cui sono stati prodotti.
Cursori lato client
Le applicazioni client controllano e tengono traccia dei messaggi letti e possono spostare il cursore in base alle esigenze per la massima flessibilità.
Bilancia orizzontale
Le partizioni offrono l'opportunità di eseguire lo scale-up del throughput per soddisfare le esigenze di più consumatori, con conseguente maggiore flessibilità.
Gruppi di consumer
I gruppi di consumatori gestiscono tutto il coordinamento necessario per consegnare i messaggi a più consumatori in modo equilibrato. Poiché questa gestione è gestita da un gruppo di consumatori per conto di tutti i membri, è possibile usufruire di costi indiretti ridotti e facilità operativa.