Architettura Apache Kafka®: una guida completa (2023)

Apache Kafkaè una piattaforma di streaming distribuita che offre quattro API chiave: l'API Producer, l'API Consumer, l'API Streams e l'API Connector con funzionalità come l'archiviazione ridondante di enormi volumi di dati e un bus di messaggi in grado di raggiungere milioni di messaggi al secondo. Queste e altre funzionalità rendono Kafka una soluzione su misura per l'elaborazione di dati in streaming da applicazioni in tempo reale.

1. Cos'è Apache Kafka?

Kafkaè essenzialmente un log di commit con una struttura dati semplicistica. L'API Kafka Producer, l'API Consumer, l'API Streams e l'API Connect possono essere utilizzate per gestire la piattaforma e l'architettura del cluster Kafka è composta da broker, consumatori, produttori eZooKeeper.

Architettura di Apache Kafka

Nonostante il suo nome suggerisca la complessità kafkiana,L'architettura di Apache Kafkain realtà offre un approccio più facile da capire alla messaggistica delle applicazioni rispetto a molte delle alternative. Kafka è essenzialmente un log di commit con una struttura dati molto semplicistica. Si dà il caso che sia eccezionalmente tollerante ai guasti e scalabile orizzontalmente.

Log di commit di Apache Kafka

Il registro dei commit di Kafka fornisce una struttura di dati ordinata persistente. I record non possono essere cancellati o modificati direttamente, ma solo aggiunti al registro. L'ordine degli elementi nei registri di Kafka è garantito. Il cluster Kafka crea e aggiorna un log di commit partizionato per ogni argomento esistente. Tutti i messaggi inviati alla stessa partizione vengono archiviati nell'ordine in cui arrivano. Per questo motivo, la sequenza dei record all'interno di questa struttura del log di commit è ordinata e immutabile. Kafka assegna inoltre a ciascun record un ID sequenziale univoco noto come "offset", che viene utilizzato per recuperare i dati.

Architettura Apache Kafka®: una guida completa (1)

Kafka risolve problemi comuni con i sistemi distribuiti fornendo l'ordinamento degli insiemi e l'elaborazione deterministica. Poiché Kafka archivia i dati dei messaggi su disco e in modo ordinato, trae vantaggio dalle letture sequenziali del disco. Considerando l'elevato costo delle risorse delle ricerche su disco, il fatto che in primo luogo Kafka elabori le letture e le scritture a un ritmo costante e, in secondo luogo, le letture e le scritture avvengano simultaneamente senza intralciarsi a vicenda, si combinano per offrire enormi vantaggi in termini di prestazioni.

Con Kafka, il ridimensionamento orizzontale è facile. Ciò significa che Kafka può ottenere le stesse prestazioni elevate quando si tratta di qualsiasi tipo di compito, dal piccolo al massiccio.

2. Architettura di Apache Kafka: panoramica dei componenti

L'architettura di Kafka è composta da argomenti, produttori, consumatori, gruppi di consumatori, cluster, broker, partizioni, repliche, leader e follower.

Il diagramma seguente offre uno sguardo semplificato alle interrelazioni tra questi componenti.

Architettura dell'API di Kafka

Apache Kafka offre quattro API principali: l'API Producer, l'API Consumer, l'API Streams e l'API Connector.

Diamo una breve occhiata a come ciascuno di essi può essere utilizzato per migliorare le capacità delle applicazioni:

API del produttore

L'API Kafka Producer consente a un'applicazione di pubblicare un flusso di record in uno o piùArgomenti di Kafka.

API del consumatore

L'API Kafka Consumer consente a un'applicazione di sottoscrivere uno o più argomenti Kafka. Consente inoltre all'applicazione di elaborare flussi di record prodotti per tali argomenti.

API dei flussi

ILFlussi di KafkaL'API consente a un'applicazione di elaborare i dati in Kafka utilizzando un paradigma di elaborazione dei flussi. Con questa API, un'applicazione può consumare flussi di input da uno o più argomenti, elaborarli con operazioni di flussi e produrre flussi di output e inviarli a uno o più argomenti. In questo modo, l'API Streams consente di trasformare i flussi di input in flussi di output.

(Video) Introduzione ad Apache Kafka | Dario Balinzo

Collega l'API

ILConnettore KafkaL'API collega applicazioni o sistemi di dati agli argomenti di Kafka. Ciò fornisce opzioni per creare e gestire il funzionamento di produttori e consumatori e ottenere connessioni riutilizzabili tra queste soluzioni. Ad esempio, un connettore potrebbe acquisire tutti gli aggiornamenti in un database e garantire che tali modifiche siano rese disponibili all'interno di un argomento Kafka.

3. Architettura del cluster Kafka

Ora diamo un'occhiata più da vicino ad alcuni dei principali componenti architettonici di Kafka:

Broker Kafka

UNMediatore Kafkaè un server in esecuzione in aCluster di Kafka(o, in altre parole: un cluster Kafka è composto da un numero di broker).

In genere, più broker collaborano per formare il cluster Kafka e ottenere bilanciamento del carico, ridondanza e failover affidabili.I broker utilizzanoApache ZooKeeper®per la gestione e il coordinamento del cluster. Ogni istanza del broker è in grado di gestire quantità di lettura e scrittura che raggiungono le centinaia di migliaia al secondo (e terabyte di messaggi) senza alcun impatto sulle prestazioni. Ogni broker ha un ID univoco e può essere responsabile delle partizioni di uno o più log degli argomenti.

I broker Kafka sfruttano anche ZooKeeper per le elezioni dei leader, in cui viene eletto un broker per gestire le richieste dei clienti per una singola partizione di un argomento. La connessione a qualsiasi broker eseguirà il bootstrap di un client al cluster Kafka completo. Per ottenere un failover affidabile, è necessario utilizzare un minimo di 3 broker: con un numero maggiore di broker aumenta l'affidabilità.

Architettura di Apache ZooKeeper

I broker Kafka usanoZooKeepergestire e coordinare il cluster Kafka.ZooKeeper notifica a tutti i nodi quando la topologia del cluster Kafka cambia, incluso quando vengono aggiunti o rimossi broker e argomenti.

Ad esempio, ZooKeeper informa il cluster se un nuovo broker si unisce al cluster o quando un broker riscontra un errore. ZooKeeper consente inoltre le elezioni di leadership tra broker e coppie di partizioni di argomenti, aiutando a determinare quale broker sarà il leader per una particolare partizione (e le operazioni di lettura e scrittura del server da parte di produttori e consumatori) e quali broker detengono repliche degli stessi dati. Quando ZooKeeper notifica al cluster le modifiche del broker, iniziano immediatamente a coordinarsi tra loro ed eleggono i nuovi leader di partizione richiesti. Questo protegge dall'eventualità che un broker sia improvvisamente assente.

Produttori di Kafka

Un produttore Kafka funge da origine dati che ottimizza, scrive e pubblica messaggi su uno o più argomenti Kafka. I produttori di Kafka inoltre serializzano, comprimono e bilanciano il carico dei dati tra i broker attraverso il partizionamento.

Consumatori di Kafka

Consumatorileggere i dati leggendo i messaggi dagli argomenti a cui si iscrivono. I consumatori apparterranno a un gruppo di consumatori. Ogni consumatore all'interno di un particolare gruppo di consumatori avrà la responsabilità di leggere un sottoinsieme delle partizioni di ciascun argomento a cui è iscritto.

4. Concetti di base

I seguenti concetti sono la base per comprendere l'architettura di Kafka:

Argomenti di Kafka

UNArgomento Kafkadefinisce un canale attraverso il quale i dati vengono trasmessi.I produttori pubblicano messaggi negli argomenti e i consumatori leggono i messaggi dall'argomento a cui si iscrivono.

Gli argomenti organizzano e strutturano i messaggi, con tipi particolari di messaggi pubblicati su argomenti particolari. Gli argomenti sono identificati da nomi univoci all'interno di un cluster Kafka e non c'è limite al numero di argomenti che possono essere creati.

Partizioni di Kafka

All'interno del cluster Kafka, gli argomenti sono suddivisi inpartizioni,e le partizioni vengono replicate tra i broker. Da ogni partizione, più consumatori possono leggere da un argomento in parallelo. È anche possibile che i produttori aggiungano una chiave a un messaggio: tutti i messaggi con la stessa chiave andranno alla stessa partizione.

Mentre i messaggi vengono aggiunti e archiviati all'interno delle partizioni in sequenza, i messaggi senza chiavi vengono scritti nelle partizioni in modalità round robin. Sfruttando le chiavi, puoi garantire l'ordine di elaborazione per i messaggi in Kafka che condividono la stessa chiave. Questa è una funzione particolarmente utile per le applicazioni che richiedono il controllo totale sui record. Non c'è limite al numero diPartizioni di Kafkache possono essere creati (in base alla capacità di elaborazione di un cluster).

Vuoi risposte a domande come

"Che impatto ha l'aumento delle partizioni sulla velocità effettiva?"

(Video) Apache Kafka in 6 minutes

"Esiste un numero ottimale di partizioni per un cluster per massimizzare il throughput di scrittura?"

Scopri di più nel nostro blog su Kafka Partitions

Fattore di replica dell'argomento

Replica dell'argomentoè essenziale per progettare implementazioni Kafka resilienti e altamente disponibili.

Quando un broker si arresta, le repliche degli argomenti su altri broker rimarranno disponibili per garantire che i dati rimangano disponibili e che la distribuzione di Kafka eviti guasti e tempi di inattività. Il fattore di replica impostato definisce quante copie di un argomento vengono mantenute nel cluster Kafka. È definito a livello di argomento e si svolge a livello di partizione.

Ad esempio, un fattore di replica pari a 2 manterrà 2 copie di un argomento per ogni partizione. Come accennato in precedenza, un determinato broker funge da leader eletto per ciascuna partizione e altri broker mantengono areplica da utilizzare se necessario. Logicamente, il fattore di replica non può essere maggiore del numero totale di broker disponibili nel cluster. Una replica che è aggiornata con il leader di una partizione è detta In-Sync Replica (ISR).

Gruppo Consumatori

UNGruppo di consumatori Kafkainclude correlaticonsumatoricon un compito comune.

Kafka invia messaggi dalle partizioni di un argomento ai consumatori nel gruppo di consumatori. Al momento della lettura, ogni partizione viene letta solo da un singolo consumatore all'interno del gruppo. Un gruppo di consumatori ha un ID gruppo univoco e può eseguire più processi o istanze contemporaneamente. Ciascun gruppo di consumatori può avere un consumatore letto da una singola partizione. Se la quantità di consumatori all'interno di un gruppo è maggiore del numero di partizioni, alcuni consumatori saranno inattivi.

Architettura interna di Kafka in breve

Assemblando i componenti sopra descritti, i produttori di Kafka scrivono sugli argomenti, mentre i consumatori di Kafka leggono dagli argomenti. Gli argomenti rappresentano le strutture di dati del log di commit memorizzate su disco. Kafka aggiunge i record scritti dai produttori alla fine di quei registri di commit dell'argomento. I registri degli argomenti sono inoltre costituiti da più partizioni, a cavallo di più file e potenzialmente più nodi del cluster. I consumatori possono utilizzare gli offset per leggere da determinate posizioni all'interno dei registri degli argomenti. Ciascun gruppo di consumatori ricorda l'offset che rappresenta il punto in cui ha letto l'ultima volta da un argomento.

Le partizioni dei log degli argomenti sono distribuite tra i nodi del cluster, o broker, per ottenere scalabilità orizzontale e prestazioni elevate. L'architettura di Kafka può essere sfruttata per migliorare questi obiettivi, semplicemente utilizzando consumatori aggiuntivi secondo necessità in un gruppo di consumatori per accedere alle partizioni di log degli argomenti replicate tra i nodi. Ciò consente ad Apache Kafka di fornire maggiore failover e affidabilità, aumentando allo stesso tempo la velocità di elaborazione.

5. Vantaggi

Ci sono molti buoni motivi per utilizzare Kafka, ognuno dei quali risale all'architettura della soluzione. Alcuni di questi vantaggi chiave includono:

Scalabilità e prestazioni

Kafka offre scritture sequenziali ad alte prestazioni e suddivide gli argomenti in partizioni per letture e scritture altamente scalabili. Di conseguenza, Kafka consente a più produttori e consumatori di leggere e scrivere simultaneamente (ea velocità estreme). Inoltre, gli argomenti divisi su più partizioni possono sfruttare l'archiviazione su più server, che a loro volta possono consentire alle applicazioni di utilizzare la potenza combinata di più dischi.

Con più produttori che scrivono sullo stesso argomento tramite partizioni replicate separate e più consumatori di più gruppi di consumatori che leggono anche da partizioni separate, è possibile raggiungere praticamente qualsiasi livello di scalabilità e prestazioni desiderate attraverso questa architettura efficiente.

Affidabilità

L'architettura di Kafka raggiunge naturalmente il failover attraverso il suo uso intrinseco della replica. Le partizioni degli argomenti vengono replicate su più broker Kafka, o nodi, con argomenti che utilizzano un fattore di replica impostato. Il fallimento di qualsiasi broker Kafka fa sì che un ISR assuma il ruolo di leader per i suoi dati e continui a servirli senza problemi e senza interruzioni.

Ripristino di emergenza

Oltre all'uso della replica da parte di Kafka per fornire il failover, l'utilità Kafka MirrorMaker offre una soluzione di ripristino di emergenza completa. MirrorMaker è progettato per replicare l'intero cluster Kafka, ad esempio in un'altra regione della rete del provider di servizi cloud o all'interno di un altro data center.

(Video) 3. Apache Kafka Fundamentals | Apache Kafka Fundamentals

In questo modo, l'architettura di Kafka MirrorMaker consente alla distribuzione di Kafka di mantenere operazioni senza soluzione di continuità anche durante i disastri su scala macro. Questa funzionalità viene definita mirroring, in contrapposizione alla replica di failover standard eseguita all'interno di un cluster Kafka. Per un esempio di come utilizzare Kafka e MirrorMaker, un'organizzazione potrebbe posizionare l'intero cluster Kafka in una singola regione del provider cloud per sfruttare le efficienze localizzate e quindi eseguire il mirroring di tale cluster in un'altra regione con MirrorMaker per mantenere un solido ripristino di emergenza opzione.

6. Architettura di Kafka: esempi di relazioni tra componenti

Diamo un'occhiata alle relazioni tra i componenti chiave all'interno dell'architettura di Kafka. Tieni presente quanto segue quando si tratta di broker, repliche e partizioni:

  • I cluster Kafka possono includere uno o più broker.
  • I broker Kafka sono in grado di ospitare più partizioni.
  • Gli argomenti possono includere 1 o più partizioni.
  • I broker sono in grado di ospitare 1 o zero repliche per ciascuna partizione.
  • Ogni partizione include 1 replica leader e zero o più repliche follower.
  • Ognuna delle repliche di una partizione deve trovarsi su un broker diverso.
  • Ogni replica di partizione deve adattarsi completamente a un broker e non può essere suddivisa in più di un broker.
  • Ogni broker può essere il leader per zero o più coppie argomento/partizione.

Ora diamo un'occhiata ad alcuni esempi di come i produttori, gli argomenti e i consumatori si relazionano tra loro:

Qui vediamo un semplice esempio di un produttore che invia un messaggio a un argomento e di un consumatore che è iscritto a quell'argomento che legge il messaggio.

Il diagramma seguente mostra come i produttori possono inviare messaggi a singoli argomenti:

I consumatori possono iscriversi a più argomenti contemporaneamente e ricevere messaggi da loro in un singolo sondaggio (il consumatore 3 nel diagramma ne mostra un esempio). I messaggi che i consumatori ricevono possono essere controllati e filtrati per argomento quando necessario (utilizzando la tecnica dell'aggiunta di chiavi ai messaggi, descritta sopra).

Ora diamo un'occhiata a un produttore che invia messaggi a più argomenti contemporaneamente, in modo asincrono:

Tecnicamente, un produttore può essere in grado di inviare messaggi a un solo argomento alla volta. Tuttavia, inviando i messaggi in modo asincrono, i produttori possono consegnare funzionalmente più messaggi a più argomenti secondo necessità.

L'architettura di Kafka è costruita per enfatizzare le prestazioni e la scalabilità dei broker. Ciò lascia ai produttori la responsabilità di controllare quale partizione riceve quali messaggi. Una funzione di hashing sulla chiave del messaggio determina la partizione predefinita in cui finirà un messaggio. Se non viene definita alcuna chiave, il messaggio arriva nelle partizioni in una serie roundrobin.

Tuttavia, questi metodi possono causare problemi o risultati non ottimali, in scenari che includono l'ordinamento dei messaggi o una distribuzione uniforme dei messaggi tra i consumatori. Per risolvere tali problemi, è possibile controllare il modo in cui i produttori inviano messaggi e li indirizzano aspecificapartizioni. Per fare ciò è necessario utilizzare un partizionatore del cliente o le partizioni predefinite insieme alle opzioni manuali o di hashing disponibili

Il valore dei consumatori nell'architettura di Kafka

All'interno dell'architettura Kafka, ogni argomento è associato a 1 o più partizioni e queste sono distribuite su 1 o più broker.

(Video) Kafka Architecture

Ciascuna partizione viene replicata su tali broker in base al fattore di replica impostato. Mentre il fattore di replica controlla il numero di repliche (e quindi l'affidabilità e la disponibilità), il numero di partizioni controlla il parallelismo dei consumatori (e quindi la scalabilità in lettura). Ciò è dovuto al fatto che ciascuna partizione può essere associata solo a 11 istanze consumer di ciascun gruppo consumer e il numero totale di istanze consumer per ciascun gruppo è inferiore o uguale al numero di partizioni. L'aggiunta di più partizioni abilita più istanze consumer, consentendo in tal modo letture su scala maggiore.

Come risultato di questi aspetti dell'architettura di Kafka, gli eventi all'interno di una partizione si verificano in un certo ordine. All'interno di un particolare gruppo di consumatori, ogni evento viene elaborato da un singolo consumatore, come previsto. Quando più gruppi di consumatori si iscrivono allo stesso argomento e ciascuno ha un consumatore pronto a elaborare l'evento, tutti questi consumatori ricevono tutti i messaggi trasmessi dall'argomento. In pratica, questa capacità di trasmissione è piuttosto preziosa.

I prossimi esempi mostrano alcune tecniche diverse per sfruttare in modo vantaggioso un singolo argomento insieme a più partizioni, consumatori e gruppi di consumatori.

In questo esempio, l'architettura di distribuzione di Kafka utilizza un numero uguale di partizioni e consumatori all'interno di un gruppo di consumatori:

Come abbiamo stabilito, i protocolli dinamici di Kafka assegnano un singolo consumatore all'interno di un gruppo a ciascuna partizione. Questa è di solito la configurazione migliore, ma èPotereessere aggirato collegando direttamente un consumatore a una specifica coppia argomento/partizione. Ciò significa essenzialmente rimuovere il consumatore dalla partecipazione al sistema dei gruppi di consumatori. Sebbene sia insolito farlo, può essere utile in determinate situazioni specializzate.

Ora diamo un'occhiata a un caso in cui utilizziamo più consumatori in un gruppo di quanti ne abbiamo le partizioni. Ciò fa sì che alcuni consumatori rimangano inattivi. Kafka può fare buon uso di questi consumatori inattivi eseguendo il failover su di essi nel caso in cui un consumatore attivo muoia o assegnando loro il lavoro se viene creata una nuova partizione.

Successivamente, diamo un'occhiata a un esempio di un gruppo che include meno consumatori rispetto alle partizioni. Il risultato in questo esempio è che il consumatore A2 è bloccato con la responsabilità di elaborare più messaggi rispetto alla sua controparte, il consumatore A1:

Nel nostro ultimo esempio, più gruppi di consumatori ricevono ogni evento da ogni partizione Kafka, con il risultato che i messaggi vengono completamente trasmessi a tutti i gruppi:

Il protocollo dinamico di Kafka gestisce tutti i lavori di manutenzione necessari per garantire che un consumatore rimanga un membro del suo gruppo di consumatori. Quando nuove istanze di consumatori si uniscono a un gruppo di consumatori, vengono anche assegnate automaticamente e dinamicamente alle partizioni, prendendole in consegna dai consumatori esistenti nel gruppo di consumatori, se necessario. Se e quando un'istanza consumer muore, la sua partizione verrà riassegnata a un'istanza rimanente nello stesso modo.

7. Risorse per consumatori e produttori

Nello sviluppare la tua comprensione di come i consumatori di Kafka operano all'interno dell'architettura di Kafka e dal punto di vista delle risorse, è fondamentale riconoscere che i consumatori e i produttori non funzionano sui broker Kafka e richiedono invece le proprie risorse di CPU e IO. Questa indipendenza delle risorse è un vantaggio quando si tratta di gestire i consumatori in qualsiasi metodo e quantità sia ideale per l'attività da svolgere, fornendo piena flessibilità senza la necessità di considerare le relazioni delle risorse interne durante la distribuzione dei consumatori tra i broker.

Detto questo, questa flessibilità comporta responsabilità: sta a te capire i metodi di implementazione e risorse ottimali per i tuoi consumatori e produttori. Questa non è una sfida da poco e deve essere considerata con attenzione. Sfruttare microservizi altamente scalabili ed elastici per soddisfare questa esigenza è una strategia suggerita.

(Video) Apache Kafka® Architecture Course Trailer | Confluent Developer

8. Conclusione

Apache Kafka offre un'architettura straordinariamente versatile e potente per lo streaming di carichi di lavoro con estrema scalabilità, affidabilità e prestazioni. Per saperne di più su come i servizi gestiti di Instaclustr possono aiutare la tua organizzazione a ottenere il massimo da Kafka e da tutte le tecnologie open source al 100% disponibili sulla piattaforma gestita di Instaclustriscriviti per una prova gratuita qui.

FAQs

What is the architecture of Kafka? ›

Kafka Architecture: Key Takeaways

Apache Kafka is an open-source stream-processing software platform that helps deliver real-time data feeds to applications. Kafka stores data durably, distributes it across a cluster of nodes, and replicates partitions and replicas to ensure data consistency and resilience to failures.

What is the architecture of Kafka stream? ›

Kafka Streams uses the concepts of stream partitions and stream tasks as logical units of its parallelism model. There are close links between Kafka Streams and Kafka in the context of parallelism: Each stream partition is a totally ordered sequence of data records and maps to a Kafka topic partition.

What is the replication architecture of Kafka? ›

In Kafka, replication means that data is written down not just to one broker, but many. Every topic has a replication factor which determines how many times a partition is copied to other brokers.

What is everything about Apache Kafka? ›

Apache Kafka is a distributed publish-subscribe messaging system and a robust queue that can handle a high volume of data and enables you to pass messages from one end-point to another. Kafka is suitable for both offline and online message consumption.

Is Kafka a message driven architecture? ›

Apache Kafka is a distributed streaming platform that can help you implement event-driven architecture. Kafka provides a distributed publish-subscribe messaging system that allows you to decouple components and coordinate their execution using events.

What is the difference between Apache Kafka and Kafka? ›

Apache Kafka is the most popular open-source distributed and fault-tolerant stream processing system. Kafka Consumer provides the basic functionalities to handle messages. Kafka Streams also provides real-time stream processing on top of the Kafka Consumer client.

What are the components of Apache Kafka architecture? ›

Overview of Kafka Architecture

The compute layer consists of four core components—the producer, consumer, streams, and connector APIs, which allow Kafka to scale applications across distributed systems.

What are the advantages of Kafka architecture? ›

Kafka replicates data and is able to support multiple subscribers. Additionally, it automatically balances consumers in the event of failure. That means that it's more reliable than similar messaging services available. Kafka Offers High Performance.

What is Apache Kafka used for? ›

Apache Kafka is a distributed data store optimized for ingesting and processing streaming data in real-time. Streaming data is data that is continuously generated by thousands of data sources, which typically send the data records in simultaneously.

Is Kafka a pull based architecture? ›

Kafka uses a pull-based system that allows users to request messages from particular offsets. Language Written In: Java and Scala. Primary Uses: Uses include activity tracking, such as monitoring user clicks and how much time users spend on certain pages.

What is the role of Kafka in microservices architecture? ›

Using Kafka for asynchronous communication between microservices can help you avoid bottlenecks that monolithic architectures with relational databases would likely run into. Because Kafka is highly available, outages are less of a concern and failures are handled gracefully with minimal service interruption.

Why do we have 3 replication in Kafka? ›

The replication factor value should be greater than 1 always (between 2 or 3). This helps to store a replica of the data in another broker from where the user can access it. For example, suppose we have a cluster containing three brokers say Broker 1, Broker 2, and Broker 3.

What language is Kafka written in? ›

Why Kafka is difficult? ›

Because Kafka works in a Java Virtual Machine (JVM) ecosystem, the main programming language of the client is Java. This could be a problem if your preferred language is Python or C, for example. While there are open source clients available in other languages, these don't come with Kafka itself.

What is Kafka in simple words? ›

In a nutshell, Kafka Streams lets you read data in real time from a topic, process that data (such as by filtering, grouping, or aggregating it) and then write the resulting data into another topic or to other systems of record.

Is Kafka a language or tool? ›

Apache Kafka is written in Scala and Java. Scala is a general-purpose programming language that is designed to be concise and expressive. It is often used for building distributed systems and data-intensive applications.

Is Kafka a message queue or bus? ›

In short, Kafka is a message queuing system with a couple of twists. It offers low-latency message processing just like a great message queue, along with high availability and fault tolerance, but it brings additional possibilities that simple queuing can't offer.

Is Kafka streaming or messaging? ›

Kafka is a stream processing system used for messaging, website activity tracking, metrics collection and monitoring, logging, event sourcing, commit logs, and real-time analytics.

Why Kafka is better than REST API? ›

Kafka APIs store data in topics. With REST APIs, you can store data in the database on the server. With Kafka API, you often are not interested in a response. You are typically expecting a response back when using REST APIs.

What is Apache Kafka for dummies? ›

Apache Kafka is a publish-subscribe based durable messaging system. A messaging system sends messages between processes, applications, and servers. Apache Kafka is a software where topics can be defined (think of a topic as a category), applications can add, process and reprocess records.

Why Kafka is better than database? ›

Kafka can store data forever in a durable and highly available manner along with ACID properties. Kafka possesses different options to query historical data. Kafka-native add-ons like ksqlDB or Tiered Storage make Kafka more powerful than ever for data processing and event-based long-term storage.

What are the 4 major Kafka APIs? ›

The Admin API for inspecting and managing Kafka objects like topics and brokers. The Producer API for writing (publishing) to topics. The Consumer API for reading (subscribing to) topics. The Kafka Streams API to provide access for applications and microservices to higher-level stream processing functions.

How does Kafka work internally? ›

Distributed means that Kafka works in a cluster, each node in the cluster is called Broker. Those brokers are just servers executing a copy of apache Kafka. So, basically, Kafka is a set of machines working together to be able to handle and process real-time infinite data.

Can we use Kafka without ZooKeeper? ›

In Kafka architecture, Zookeeper serves as a centralized controller for managing all the metadata information about Kafka producers, brokers, and consumers. However, you can install and run Kafka without Zookeeper.

What are the limitations of Kafka? ›

Disadvantages Of Apache Kafka

Do not have complete set of monitoring tools: Apache Kafka does not contain a complete set of monitoring as well as managing tools. Thus, new startups or enterprises fear to work with Kafka. Message tweaking issues: The Kafka broker uses system calls to deliver messages to the consumer.

What are the disadvantages of Kafka? ›

Disadvantages of Kafka
  • Doesn't possess a full set of management and monitoring tools. ...
  • The broker uses certain system calls to deliver messages to the consumer, but if the message needs some tweaking, doing so reduces Kafka's performance significantly.

What protocol uses Kafka? ›

Kafka uses a binary protocol over TCP. The protocol defines all APIs as request response message pairs.

Why is it called Apache Kafka? ›

The name was chosen by the original developers of the software, who wanted to evoke the feeling of Kafka's work in the software they were creating. Kafka's work often dealt with the struggles of individuals against a powerful and oppressive system, and this is reflected in the design of the software.

Why is Apache Kafka so popular? ›

Apache Kafka is the most popular open-source stream-processing software for collecting, processing, storing, and analyzing data at scale. Most known for its excellent performance, low latency, fault tolerance, and high throughput, it's capable of handling thousands of messages per second.

Is Kafka an ETL tool? ›

Kafka is a great choice for doing ETL (extract-transform-load): Connect provides the E and the L, Streams the T, and Kafka itself provides a storage buffer that provides scalability, resiliency, and replayability of the process.

Is Kafka a queue or a database? ›

Apache Kafka is not a traditional message queue. Kafka is a distributed messaging system that includes components of both a message queue and a publish-subscribe model. Kafka improves on the deficit of each of those traditional approaches allowing it to provide fault tolerant, high throughput stream processing.

Does Tesla use Kafka? ›

Tesla has built a Kafka-based data platform infrastructure “to support millions of devices and trillions of data points per day”.

What layer is Kafka? ›

Kafka is also known as a protocol i.e. TCP. This protocol activates at the layer of OSI model known as the transport layer.

Why Kafka is used in Devops? ›

Kafka Connect deployments

Connect workers run in a cooperative cluster, making them ideal for the dynamic, horizontal scalability features built into Kubernetes. Additionally, Connect workers serve an HTTP API for connector configuration management, making them good candidates for Kubernetes Services.

Why do we use Kafka in data pipeline? ›

If the target can't keep up with the rate of data being sent to it, Kafka will take the backpressure. Pipelines built around Kafka can evolve gracefully. Because Kafka stores data, we can send the same data to multiple targets independently.

How is Kafka used in machine learning? ›

Apache Kafka became the de facto standard for event streaming across the globe and industries. Machine Learning (ML) includes model training on historical data and model deployment for scoring and predictions. While training is mostly batch, scoring usually requires real-time capabilities at scale and reliability.

What is zookeeper in Kafka? ›

At a detailed level, ZooKeeper handles the leadership election of Kafka brokers and manages service discovery as well as cluster topology so each broker knows when brokers have entered or exited the cluster, when a broker dies and who the preferred leader node is for a given topic/partition pair.

How many Kafka nodes do I need? ›

Even a lightly used Kafka cluster deployed for production purposes requires three to six brokers and three to five ZooKeeper nodes. The components should be spread across multiple availability zones for redundancy.

What are the two types of replicas Kafka? ›

There are two different types of replicas: Leader Replica: Each partition is designated as the leader with a single replica. All demands for producing and consuming go through the leader to ensure consistency. Followers Replica: All replicas are called followers for a partition that is not leaders.

Who maintains Kafka? ›

Apache Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala.

Does Kafka have coding? ›

What Coding Language is Kafka Written in? It is written in both Java and Scala. Older versions were written in Scala, whereas the latest versions use Java programming language.

Is there coding in Kafka? ›

Streams API. Kafka's Streams API (aka Kafka Streams) uses a few more additional coding guidelines. All contributors should follow these the get a high quality and uniform code base.

What is better than Apache Kafka? ›

RabbitMQ is backed not only by a robust support system but also offers a great developer community. Since it is open-source software it is one of the best Kafka Alternatives and RabbitMQ is free of cost.

What happens when Kafka is full? ›

policy property from topic config which by default is delete , says that "The delete policy will discard old segments when their retention time or size limit has been reached." So, if you send record with producer api and topic got full, it will discard old segments.

How long does it take to learn Apache Kafka? ›

It will get you started very quickly and allow you learn about the most important concepts in less than two hours. In total there are 4 hours of content! Happy learning! I have a small article to start with kafka.

What is Kafka architecture? ›

Kafka Architecture: Key Takeaways

Apache Kafka is an open-source stream-processing software platform that helps deliver real-time data feeds to applications. Kafka stores data durably, distributes it across a cluster of nodes, and replicates partitions and replicas to ensure data consistency and resilience to failures.

What is the architecture of Kafka in big data? ›

Kafka's architecture is based on the concept of streams. A stream is an ordered, immutable sequence of records processed as they arrive. Each record in a stream consists of a key, a value, and a timestamp. Streams can be divided into partitions, which are ordered subsets of records.

Is Kafka a Kappa architecture? ›

The Kappa Architecture is typically built around Apache Kafka® along with a high-speed stream processing engine.

Which design pattern does Kafka use? ›

Kafka Design Patterns

#2) Single-Event Processing Pattern: In this design pattern, we use in our common real-time use case of aggregating the data, data processing, and decision-making types of streams. We can consider this patent as a map filter, which maps and cleans the unrecognized events.

What are the 4 major components of Kafka? ›

Overview of Kafka Architecture

The compute layer consists of four core components—the producer, consumer, streams, and connector APIs, which allow Kafka to scale applications across distributed systems.

What programming language is used in Kafka? ›

Apache Kafka is an open-source stream-processing software platform developed by the Apache Software Foundation. It is written in Scala and Java and is often used for building real-time data pipelines and streaming applications.

How many types of Kafka are there? ›

Kafka supports two types of topics: Regular and compacted.

What is the best data format for Kafka? ›

Avro is a data serialization format that is developed under the Apache umbrella and is suggested to be used for Kafka messages by the creators of Apache Kafka themselves. Why? By serializing your data in Avro format, you get the following benefits: Avro relies on a schema.

Does TikTok use Kafka? ›

TikTok (ByteDance) utilizes Kafka as a data hub for the collection of events and logs in support of a variety of services such as large scale message processing and activity tracking.

What is the AWS equivalent of Kafka? ›

AWS also offers Amazon MSK, the most compatible, available, and secure fully managed service for Apache Kafka, enabling customers to populate data lakes, stream changes to and from databases, and power machine learning and analytics applications.

Does Blockchain use Kafka? ›

Kafka is not a blockchain.

Decentralized database. Distributed log of records. Immutable log.

What layer does Kafka work on? ›

The messaging layer of Kafka partitions data for storing and transporting it. Kafka Streams partitions data for processing it. In both cases, this partitioning is what enables data locality, elasticity, scalability, high performance, and fault tolerance.

Do software engineers use Kafka? ›

What every software engineer needs to know about this transformative tool. Kafka is a transformative tool, and a key component to many event-based systems today. Software engineers — particularly those of us involved in building out microservices — have likely used Kafka to some extent.

Videos

1. 5.0 Complete Kafka Training - What is a Kafka Broker [ Explained ]
(DataShark Academy)
2. Apache Kafka Explained (Comprehensive Overview)
(Finematics)
3. Cos'è Kafka?
(IBM Technology)
4. Tutorial Kafka con Spring Boot in 45 mins
(LessTheory Academy)
5. Meet Apache Kafka : data streaming nelle tue mani
(DevDay)
6. Apache Kafka with Node.js: 05 Creating basic Node.js producer
(Bogdan Stashchuk)
Top Articles
Latest Posts
Article information

Author: Errol Quitzon

Last Updated: 16/11/2023

Views: 5623

Rating: 4.9 / 5 (79 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Errol Quitzon

Birthday: 1993-04-02

Address: 70604 Haley Lane, Port Weldonside, TN 99233-0942

Phone: +9665282866296

Job: Product Retail Agent

Hobby: Computer programming, Horseback riding, Hooping, Dance, Ice skating, Backpacking, Rafting

Introduction: My name is Errol Quitzon, I am a fair, cute, fancy, clean, attractive, sparkling, kind person who loves writing and wants to share my knowledge and understanding with you.