2W 字長文: Kafka 實戰(zhàn)教程與面試題全講解

Kafka 概述

Kafka 最初是由 LinkedIn 即領英公司基于 Scala 和 Java 語言開發(fā)的分布式消息發(fā)布—訂閱系統(tǒng),現(xiàn)已捐獻給 Apache 軟件基金會。Kafka 最被廣為人知的是作為一個消息隊列(MQ)系統(tǒng)存在,而事實上 Kafka 已然成為一個流行的分布式流處理平臺。其具有高吞吐、低延遲的特性,許多大數(shù)據(jù)處理系統(tǒng)比如 Storm、Spark、Flink 等都能很好地與之集成。按照 Wikipedia 上的說法,Kafka 的核心數(shù)據(jù)結構本質(zhì)上是一個“按照分布式事務日志架構的大規(guī)模發(fā)布/訂閱消息隊列”??偟膩碇v,Kafka 通常具有 3 重角色:

  • 消息系統(tǒng):Kafka 和傳統(tǒng)的消息隊列比如 RabbitMQ、RocketMQ、ActiveMQ 類似,支持流量削鋒、服務解耦、異步通信等核心功能。
  • 流處理平臺:Kafka 不僅能夠與大多數(shù)流式計算框架完美整合,并且自身也提供了一個完整的流式處理庫,即 Kafka Streaming。Kafka Streaming 提供了類似 Flink 中的窗口、聚合、變換、連接等功能。
  • 存儲系統(tǒng):通常消息隊列會把消息持久化到磁盤,防止消息丟失,保證消息可靠性。Kafka 的消息持久化機制和多副本機制使其能夠作為通用數(shù)據(jù)存儲系統(tǒng)來使用。

一句話概括:Kafka 是一個分布式的基于發(fā)布/訂閱模式的消息隊列(Message Queue),在業(yè)界主要應用于大數(shù)據(jù)實時處理領域。

Kafka 體系結構

如圖所示,Kafka 的體系結構中通常包含多個 Producer(生產(chǎn)者)、多個 Consumer(消費者)、多個 Broker(Kafka 服務器)以及一個 ZooKeeper 集群。

在這里插入圖片描述

體系結構中幾個角色:

還有 98% 的精彩內(nèi)容
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
支付 ¥19.98 繼續(xù)閱讀

友情鏈接更多精彩內(nèi)容