le mie informazioni di contatto
Posta[email protected]
2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Kafka è una coda di messaggi distribuita (MQ, Message Queue) basata sul modello di pubblicazione/sottoscrizione. Viene utilizzata principalmente per l'elaborazione in tempo reale e la raccolta di log nel campo dei big data.
Kafka è stato originariamente sviluppato da Linkedin. È un sistema middleware di messaggi distribuito che supporta partizioni, repliche multiple ed è coordinato da Zookeeper. La sua caratteristica principale è che può elaborare grandi quantità di dati in tempo reale per soddisfare vari scenari di domanda come sistema di elaborazione batch basato su Hadoop, sistema in tempo reale a bassa latenza, motore di streaming Spark/Flink, registro di accesso nginx, servizio di messaggistica, ecc., scritto in linguaggio scala,
Linkedin è stato donato alla Apache Foundation nel 2010 ed è diventato uno dei principali progetti open source.
Il motivo principale è che in un ambiente ad alta concorrenza le richieste di sincronizzazione non vengono elaborate in tempo e spesso vengono bloccate. Ad esempio, un gran numero di richieste accedono contemporaneamente al database, provocando blocchi di righe e tabelle. Infine, si accumuleranno troppi thread di richiesta, innescando troppi errori di connessione e innescando un effetto valanga.
Utilizziamo le code di messaggi per gestire le richieste in modo asincrono per alleviare la pressione sul sistema. Le code di messaggi vengono spesso utilizzate nell'elaborazione asincrona, nella riduzione dei picchi di traffico, nel disaccoppiamento delle applicazioni, nella comunicazione di messaggi e in altri scenari.
Attualmente, i middleware MQ più comuni includono ActiveMQ, RabbitMQ, RocketMQ, Kafka, ecc.
(1) Disaccoppiamento
Consente di estendere o modificare i processi su entrambi i lati in modo indipendente, purché aderiscano agli stessi vincoli di interfaccia.
(2) Ripristinabilità
Quando un componente del sistema si guasta, ciò non influisce sull'intero sistema. La coda dei messaggi riduce l'accoppiamento tra i processi, quindi anche se un processo che elabora i messaggi riattacca, i messaggi aggiunti alla coda possono ancora essere elaborati dopo il ripristino del sistema.
(3) Bufferizzazione
Aiuta a controllare e ottimizzare la velocità del flusso di dati attraverso il sistema e a risolvere il problema delle velocità di elaborazione incoerenti dei messaggi di produzione e dei messaggi dei consumatori.
(4) Flessibilità