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