Panoramica del servizio di streaming con Apache Kafka

Oracle Cloud Infrastructure (OCI) Streaming con Apache Kafka è un servizio OCI completamente gestito che consente di creare ed eseguire cluster Kafka in una tenancy OCI con tutte le funzionalità di Apache Kafka.

Apache Kafka è una piattaforma di streaming di eventi open source utilizzata per creare applicazioni di streaming di dati in tempo reale. Utilizzando Apache Kafka è possibile effettuare le operazioni riportate di seguito.

  • Scrivere e leggere flussi di eventi
  • Memorizza flussi di eventi
  • Elabora flussi di eventi in tempo reale o successivo

Con lo streaming con Apache Kafka, ottieni tutte le funzionalità di Apache Kafka senza il carico di lavoro del provisioning e della gestione dell'infrastruttura sottostante.

Immagine che mostra tutti i casi d'uso di OCI Streaming con Apache Kafka.

Funzioni

Lo streaming con Apache Kafka è realizzato con le seguenti funzioni:

Completamente gestito
Lo streaming con Apache Kafka è completamente gestito e automatizza attività come l'applicazione di patch, gli upgrade, i backup, l'alta disponibilità, la replica tra più aree, il ridimensionamento e la gestione delle prestazioni.
Durabilità e disponibilità
Ogni cluster è configurato con ridondanza dell'alta disponibilità e dello storage in tutti i domini di disponibilità o di errore. Puoi creare un cluster con un singolo broker per le tenancy di sviluppo o test oppure creare un cluster con almeno 3 broker per le tenancy di produzione per fornire alta disponibilità.
Lo streaming con Apache Kafka rileva e recupera automaticamente da scenari di errore comuni dei cluster. Ciò garantisce che le applicazioni producer e consumer subiscano interruzioni minime durante le operazioni di scrittura e lettura. Quando lo streaming con Apache Kafka rileva un errore del broker, riduce l'errore o sostituisce il broker in cattivo stato o irraggiungibile con uno nuovo. Ove possibile, riutilizza lo storage esistente dal broker non riuscito per ridurre al minimo la quantità di dati che Apache Kafka deve replicare. L'impatto sulla disponibilità è limitato al tempo necessario per lo streaming con Apache Kafka per il rilevamento e il ripristino dall'errore. Dopo il ripristino, le applicazioni produttore e consumatore possono continuare a comunicare con gli stessi endpoint broker di prima, garantendo un funzionamento senza interruzioni.
Compatibilità con Apache Kafka
Lo streaming con Apache Kafka è compatibile al 100% con le API Apache Kafka e consente di utilizzare le applicazioni scritte per Apache Kafka senza riscrivere il codice.
Servizi OCI integrati
  • Utilizzare OCI Vault per memorizzare e gestire in modo sicuro le credenziali utente privilegiato
  • Usa monitoraggio OCI per le metriche del cluster
  • Usa OCI Logging per i log a livello di cluster

Casi d'uso

Utilizza lo streaming con Apache Kafka nei seguenti scenari:

Change Data Capture
Change Data Capture (CDC) è uno stile di progettazione dell'applicazione in cui le modifiche allo stato dell'applicazione vengono registrate come sequenza di record ordinata nel tempo. Lo streaming OCI con il supporto di Apache Kafka per lo storage dei dati di log su scala cloud lo rende un backend eccellente per un'applicazione costruita in questo stile. Puoi distribuire qualsiasi connettore Kafka open source, o Oracle Golden Gate, in una virtual machine (VM), che esegue il polling dei database di origine per cercare dati nuovi o modificati in base a una colonna dell'indicatore orario di aggiornamento e trasmette facilmente i dati in OCI Streaming con Apache Kafka. Ad esempio, le aziende di e-commerce utilizzano CDC con Kafka per tenere traccia degli aggiornamenti degli ordini nel loro database per avviare l'elaborazione degli ordini e altri microservizi di evasione degli ordini.
Immagine che mostra l'architettura di acquisizione dei dati di modifica
Inclusione di metriche e log
Utilizza OCI Streaming con Apache Kafka come metriche o processore di log da origini diverse. Gli strumenti di inclusione dei log, ad esempio l'API Fluentd, Logstash o Kafka Producer, possono raccogliere i log da varie applicazioni e inserirli negli argomenti Kafka per l'arricchimento e l'aggregazione dei dati. Utilizzando le API Apache Kafka, puoi arricchire i dati astraendo i dettagli dei log e inviandoli agli strumenti di analisi a valle per ulteriori funzionalità di elaborazione e ricerca avanzata dei log.
Immagine che mostra l'architettura di inclusione delle metriche e dei log
Analitica in tempo Reale
Utilizza OCI Streaming con Apache Kafka per elaborare e analizzare flussi continui di dati da dispositivi IOT o altre applicazioni a monte per insight in tempo reale, rilevamento delle anomalie e analytics predittivi. Ad esempio, gli istituti finanziari utilizzano il servizio per elaborare i feed di dati di mercato, rilevare anomalie di trading e prendere decisioni di trading in tempo reale. I retailer analizzano il comportamento e le preferenze dei clienti in tempo reale per offrire consigli e promozioni personalizzati.
Immagine che mostra l'architettura di analisi in tempo reale
Inclusione dati attività Web e mobile
Utilizza OCI Streaming con Apache Kafka per ricreare una pipeline di monitoraggio delle attività utente come set di feed di pubblicazione/sottoscrizione in tempo reale. Questi feed sono disponibili per la sottoscrizione a una serie di casi d'uso, tra cui l'elaborazione in tempo reale, il monitoraggio in tempo reale e il caricamento nei sistemi di data warehousing Hadoop o offline per l'elaborazione e il reporting offline. È possibile utilizzare questa soluzione per i seguenti usi:
  • Clickstream: i casi d'uso di Clickstream comportano la raccolta di dati sulle attività del sito web da più produttori e l'analisi dei dati in tempo reale per fornire consigli, come prodotti da acquistare, articoli di notizie da leggere e video da guardare.
  • Analisi dei giochi: le società di gioco monitorano costantemente il ritardo della rete, il comportamento degli utenti e le attività di gioco per offrire ai clienti microtransazioni di gioco, ribilanciare il carico di rete, modificare i parametri del motore di rendering e altro ancora. Tutte queste azioni avvengono in tempo reale, nell'ordine di millisecondi a pochi secondi.
Immagine che mostra l'inclusione dei dati dell'attività Web e mobile
Messaggistica
Utilizza OCI Streaming con Apache Kafka per scollegare i componenti di sistemi di grandi dimensioni. Ad esempio, produttori e consumatori possono utilizzare OCI Streaming con Apache Kafka come bus di messaggi asincroni e agire in modo indipendente e secondo i propri ritmi.
Immagine che illustra l'architettura di messaggistica

Quando utilizzare lo streaming OCI con Apache Kafka e OCI Streaming

Esamina i dettagli di OCI Streaming con Apache Kafka e OCI Streaming per trovare la soluzione migliore per le tue esigenze di streaming.

Streaming OCI Streaming OCI OCI con Apache Kafka
Consigliato come bus di messaggistica per la comunicazione tra app e app. Ideale per carichi di lavoro di piccole e medie dimensioni con meno di 500 partizioni per area per tenancy. Consigliato per lo storage dei dati distribuiti e l'elaborazione dei dati in tempo reale, inclusi CDC, analisi dei flussi ed elaborazione dei dati IOT, senza limiti sul numero di partizioni.
Gestito e serverless Gestito, ma non serverless
Compatibilità parziale con Apache Kafka Compatibile al 100% con Apache Kafka
Latenza delle prestazioni ~ 200 ms in media, quando il cluster viene ottimizzato correttamente. Latenza delle prestazioni inferiore a 100 ms, quando il cluster viene ottimizzato correttamente.
Più tenant: un singolo cluster contiene diverse tenancy del cliente. Singolo tenant: ogni cluster è dedicato a una singola tenancy.
Autenticazione e autorizzazione mediante IAM. Autenticazione mediante mTLS o SASL/SCRAM e autorizzazione mediante ACL.
Limite relativo 15 e limite assoluto 500 sulle partizioni Nessun limite
Conservazione dello storage 7 giorni Nessun limite
Nessun limite di dimensioni di storage Limite dimensioni storage 5 TB per broker
Throughput di scrittura per partizione 1 MB al secondo e throughput di lettura per partizione 2 MB al secondo. Throughput ~ 10 MB al secondo.

Il throughput predefinito per partizione in Apache Kafka non è un limite fisso, ma una combinazione di fattori. Si stima che sia di circa 10 MB al secondo per partizione. Il throughput massimo per partizione dipende dall'infrastruttura e dalle configurazioni di base, ad esempio la dimensione del batch, il codec di compressione, il fattore di replica e il tipo di conferma.

Dimensione massima dei messaggi: 1 MB Dimensione massima predefinita del messaggio impostata su 1 MB per aiutare i broker a gestire la memoria in modo efficace. Questa impostazione può essere modificata nella configurazione cluster. Nessun limite alla dimensione massima, ma i messaggi molto grandi non sono consigliati e considerati inefficaci e anti-modello in Apache Kafka.
Ridimensionamento non supportato Ridimensiona il numero di broker fino a 30 broker per cluster e scala il numero di OCPU fino al massimo definito dalle forme di computazione.
50 gruppi di consumatori per argomento Nessun limite, ma più gruppi di consumer, maggiore è l'uso della rete.
Argomento compattato delle funzionalità, produzione idempotente, transazione, API di flusso non disponibile. Funzionalità compattate, prodotti idempotenti, transazioni, API di flusso supportate.
Metriche di cardinalità limitate disponibili Ampie metriche di cardinalità elevate disponibili

Identificativi risorsa

Lo streaming con Apache Kafka supporta cluster e richieste di lavoro come risorse Oracle Cloud Infrastructure. La maggior parte dei tipi di risorse dispone di un identificativo univoco assegnato da Oracle, denominato OCID (Oracle Cloud ID). Per informazioni sul formato OCID e su altri modi per identificare le risorse, vedere Identificativi delle risorse.

Aree e domini di disponibilità

Oracle ospita i propri servizi OCI in regioni e domini di disponibilità. Un'area è un'area geografica localizzata, mentre uno o più datacenter situati all'interno di un'area. Lo streaming con Apache Kafka è ospitato in tutte le regioni del realm OC1.

Autenticazione e autorizzazione

Ogni servizio in Oracle Cloud Infrastructure è integrato con IAM per l'autenticazione e l'autorizzazione di tutte le interfacce (console, SDK o CLI e API REST).

Un amministratore dell'organizzazione deve impostare gruppi , compartimenti e criteri che controllano quali utenti possono accedere a quali servizi, quali risorse e il tipo di accesso. Ad esempio, i criteri controllano chi può creare nuovi utenti, creare e gestire la rete cloud, creare istanze, creare bucket, scaricare oggetti e così via. Per ulteriori informazioni, consulta la Guida introduttiva ai criteri.

Modi per accedere allo streaming con Apache Kafka

Puoi accedere a Oracle Cloud Infrastructure (OCI) utilizzando la console (un'interfaccia basata sul browser), l'API REST o l'interfaccia CLI OCI. Le istruzioni per l'uso della console, dell'API e dell'interfaccia CLI sono incluse negli argomenti di questa documentazione. Per esaminare un elenco di SDK disponibili, consulta Software Development Kits and Command Line Interface.

Console: per accedere allo streaming con Apache Kafka utilizzando la console, è necessario utilizzare un browser supportato. Per andare alla pagina di connessione della console, aprire il menu di navigazione nella parte superiore di questa pagina e selezionare Console infrastruttura. Viene richiesto di immettere il tenant cloud, il nome utente e la password.

API: per accedere allo streaming con Apache Kafka tramite le API, la documentazione sulle API REST fornisce il maggior numero di funzionalità, ma richiede competenze di programmazione. Il riferimento API e gli endpoint forniscono dettagli sugli endpoint e collegamenti ai documenti di riferimento API disponibili, tra cui Streaming con l'API Apache Kafka. Lo streaming con l'API Apache Kafka consente di creare e gestire i cluster Kafka e i file di configurazione. Utilizzare le interfacce API Kafka Apache per le operazioni client.

CLI: l'interfaccia CLI OCI consente di creare e gestire i cluster Kafka e i file di configurazione. Utilizzare le interfacce CLI Apache Kafka per le operazioni client. Utilizzare l'ambiente Cloud Shell per eseguire le interfacce CLI.