
什麼是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 + 總結)