什麼是 Kafka?
Kafka 通常用于實時流資料架構,以提供實時分析。
Kafka 正在爆炸式增長。超過三分之一的财富 500 強企業都使用 Kafka。這些公司包括十大旅遊公司,十大銀行中的七家,十大保險公司中的八家,十大電信公司中的九家,以及更多。LinkedIn,微軟和 Netflix 每天使用 Kafka(1,000,000,000,000)處理萬億級的消息。Kafka 用于實時資料流,收集大資料或進行實時分析(或兩者兼而有之)。Kafka 與記憶體微服務一起使用以提供可靠性,它可用于向 CEP(複雜事件流系統)和 IoT / IFTTT 式自動化系統提供事件。
為什麼選擇 Kafka?
Kafka 通常用于實時流式資料體系結構以提供實時分析。由于 Kafka 是一個快速,可擴充,耐用和容錯的釋出、訂閱消息傳遞系統,Kafka 被用于 JMS,RabbitMQ 和 AMQP 可能因為數量和響應速度而不被考慮的情況。Kafka 具有更高的吞吐量,可靠性和複制特性,使其适用于跟蹤服務呼叫(跟蹤每個呼叫)或跟蹤傳統 MOM 可能不被考慮的物聯網傳感器資料。
Who 在使用 Kafka?
許多處理大量資料的大公司使用 Kafka。
- LinkedIn 起源于它,用它來跟蹤活動資料和營運名額。
- Twitter 使用它作為 Storm 的一部分來提供流處理基礎設施。
- Square 使用 Kafka 作為消息總線,将所有系統事件轉移到各種 Square 資料中心(日志,自定義事件,度量标準等),輸出到 Splunk,Graphite(儀表闆)以及 Esper-like / CEP 警報系統。
- Spotify,Uber,Tumbler,Goldman Sachs,PayPal,Box,Cisco,CloudFlare 和 Netflix 等公司也使用這種方法。
由于整個筆記比較全面,内容相當的多 ,這裡僅展示資料的一些截圖,如有需要擷取文中提到的 “Kafka 技術手冊” 的朋友
戳此處領取。

kafka 知識導圖
第一部分:初識 Kafka
通過這一部分的學習,你可以學習一下内容:
- 知道 Kafka 基本原理,了解關鍵術語概念
- 可以使用 Kafka 進行消息系統開發
- 通過 Java 語言來使用 Kafka 進行消息收發
内容涵蓋:(特性 + 使用場景 + 技術優勢 + 适應人群 + 概念詳解 + 安裝與配置 + Java 第一個程式 + 服務端常用參數配置 + 總結)
第二部分:生産者詳解
- 深入學習 Kafka 資料生産大緻流程
- 如何建立并使用 Kafka 生産者
- Kafka 生産者常用配置
内容涵蓋:(消息發送 + 發送原理剖析 + 其他生産者參數 + 總結)
第三部分:消費者詳解
- 深入學習 Kafka 資料消費大緻流程
- 如何建立并使用 Kafka 消費者
- Kafka 消費者常用配置
内容涵蓋:(概念入門 + 消息接收 + 總結)
第四部分:主題
- 深入學習 Kafka 主題的管理
- KafkaAdminClient 應用
内容涵蓋:(管理 + 增加分區 + 分區副本的配置設定 + 其他主題參數配置 + KafkaAdminClient 應用 + 總結)
第五部分:分區
- 深入學習 Kafka 分區的管理
- 包括:優先副本的選舉、分區重新配置設定等
内容涵蓋:(副本機制 + 分區 Leader 選舉 + 分區重新配置設定 + 修改副本因子 + 分區配置設定政策 + 總結)
第六部分:Kafka 存儲
- 在完成 Kafka 應用開發的基礎上,知道檔案存儲機制
- Kafka 為什麼使用磁盤作為存儲媒體
- 分析檔案存儲格式
- 快速檢索消息
内容涵蓋:(存儲結構概述 + 日志索引 + 日志清理 + 磁盤存儲優勢 + 總結)
第七部分:穩定性
- 深入學習 Kafka 在保證高性能、高吞吐的同時通過各種機制來保證高可用性
内容涵蓋:(幂等性 + 事務 + 控制器 + 可靠性保證 + 一緻性保證 + 消息重複的場景及解決方案 + __consumer_offsets + 總結)
第八部分:進階應用
- 作為運維人員掌握指令行工具
- 使用 Connect 進行流資訊處理
- 掌握延遲消息、流式處理等
- Kafka 和 SpringBoot 整合
内容涵蓋:(指令行工具 + 資料管道 Connect + 流式處理 Spark + SpringBoot Kafka + 消息中間件選型對比 + 總結)
第九部分:叢集管理
- 熟悉 Kafka 叢集管理相關内容
- 配置與調優
内容涵蓋:(叢集的特點 + 叢集的能力 + 叢集使用場景 + 叢集搭建 + 多叢集同步 + 總結)
第十部分:監控
- 知道 Kafka 的監控體系
- 掌握 JMX 監控名額
- 資料異動實時提醒
内容涵蓋:(監控度量名額 + broker 監控名額 + 主題分區監控 + 生産者監控名額 + 消費者監控名額 + Kafka Eagle + 總結)
寫在最後
在目前的趨勢下,Kafka 被越來越多的網際網路獨角獸企業所器重,在業務中的使用也越來越多!那麼,我們就是說不一定要熟練,但是至少要學會怎麼用。這樣在業務中自己的能力不斷地提升,才有底氣和老闆、和 HR 談漲薪。否則,隻是一味地做,不停地 996,業務能力卻沒有提升,那麼就會被公司所抛棄,更不要說什麼漲薪了,你問問你自己,你配嗎?
最後,我想說的是,學習并非難事,而貴在堅持,尤其是在我們參與工作之後,要繼續堅持學習就更不容易了。但對于程式員來說,學習是立業之根本,如若放棄學習,被市場淘汰是遲早的事情。是以,學習更多新的知識對于自己來說才是一種更大的投資。
擷取方式:需要這份 《Kafka 技術手冊》幫忙點贊+轉發+關注我,然後
免費擷取! 希望對你有幫助~~