天天看點

深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記

寫在前邊

Kafka起初是由LinkedIn公司采用Scala語言開發的一個多分區、多副本且基于ZooKeeper協調的分布式消息系統,現已被捐獻給Apache基金會。目前Kafka已經定位為一個分布式流式處理平台,它以高吞吐、可持久化、可水準擴充、支援流資料處理等多種特性而被廣泛使用。目前越來越多的開源分布式處理系統如Cloudera、Storm、Spark、 Flink等都支援與Kafka內建。

Kafka之是以受到越來越多的青睐,與它所“扮演”的三大角色是分不開的:

消息系統: Kafka 和傳統的消息系統(也稱作消息中間件)都具備系統解耦、備援存儲、流量削峰、緩沖、異步通信、擴充性、可恢複性等功能。與此同時,Kafka 還提,供了大多數消息系統難以實作的消息順序性保障及回溯消費的功能。存儲系統: Kafka 把消息持久化到磁盤,相比于其他基于記憶體存儲的系統而言,有效地降低了資料丢失的風險。也正是得益于Kafka的消息持久化功能和多副本機制,我們可以把Kafka作為長期的資料存儲系統來使用,隻需要把對應的資料保留政策設定為“永久”或啟用主題的日志壓縮功能即可。流式處理平台: Kafka 不僅為每個流行的流式處理架構提供了可靠的資料來源,還提供了一個完整的流式處理類庫,比如視窗、連接配接、變換和聚合等各類操作。

今天,小編就為大家帶來分布式架構Kafka的核心設計及實踐原理~~~

深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記

第1章:初識Kafka

  • 1.1 基本概念
  • 1.2 安裝與配置
  • 1.3 生産與消費
  • 1.4 服務端參數配置
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章比較基礎,對kafka的基本概念進行了闡述,相信大家都已熟悉。

第2章:生産者

  • 2.1 用戶端開發
  • 2.2 原理分析
  • 2.3 重要的生産者參數
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述了生産者用戶端的具體用法及其整體架構,主要内容包括配置參數的詳解、消息的發送方式、序列化器、分區器、攔截器等。在實際應用中,一套封裝良好的且靈活易用的用戶端可以避免開發人員重複勞動,也提高了開發效率,還可以提高程式的健壯性和可靠性,而Kafka的用戶端正好包含了這些特質。

第3章:消費者

  • 3.1 消費者與消費組
  • 3.2 用戶端開發
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述了消費者和消費組的概念,以及如何正确使用KafkaConsumer。 具體的内容還包括參數配置的講解、訂閱、反序列化、位移送出、再均衡、消費者攔截器、多線程的使用。

第4章:主題與分區

  • 4.1 主題的管理
  • 4.2 初識KafkaAdminClient
  • 4.3 分區的管理
  • 4.4 如何選擇合适的分區數
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述了Kafka概念中的兩大核心一主題和分區。通過對主題的增删查改、配置管理等内容來了解主題相關的知識點。通過對分區副本的一系列操作及分區數設定的考量因素來了解分區相關的概念,比如優先副本、限流、分區重配置設定等。

第5章:日志存儲

  • 5.1 檔案目錄布局
  • 5.2 日志格式的演變
  • 5.3 日志索引
  • 5.4 日志清理
  • 5.5 磁盤存儲
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述的是Kafka中與存儲相關的知識點,既包含Kafka自身的日志格式、日志索引、日志清理等方面的内容,也包含底層實體存儲相關的知識點。通過對本章内容的學習,相信大家對Kafka的一些核心機理有了比較深刻的認知。

第6章:深入服務端

  • 6.1 協定設計
  • 6.2 時間輪
  • 6.3 延時操作
  • 6.4 控制器
  • 6.5 參數解密
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講解Kafka服務端的一些核心概念,友善大家加深對Kafka的了解,并且為下面章節中的講解做好鋪墊。比如,本章涉及的協定設計,它可以幫助我們更好地了解組協調器和事務協調器的工作原理,還可以幫助我們了解Kafka中的資料可靠性、資料一緻性等更深層次的理念。

第7章:深入用戶端

  • 7.1 分區配置設定政策
  • 7.2 消費者協調器群組協調器
  • 7.3 _ consumer. offsets剖析
  • 7.4 事務
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章内容涉及第3章中未詳細說明的分區配置設定政策,以及消費者協調器群組協調器之間的互動原理。本章還對主題_ consumer_ offsets 和位移送出做了深層次的描述,想必大家對位移送出有了一個更加深刻的認知。本章最後還對Kafka 中的事務進行了詳述,Kafka 的事務可以看作Kafka中最難的知識點之一,它和Kafka中的控制器有的一拼。

第8章:可靠性探究

  • 8.1 副本剖析
  • 8.2 日志同步機制
  • 8.3 可靠性分析
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
筆者接觸Kafka以來被問得最多的就是Kafka的可靠性問題,本章以此為引來對Kafka相關的知識點進行講解,最後通過可靠性分析來做一個總結,希望能夠為大家在遇到此類問題時提供參考。

第9章:Kafka應用

  • 9.1 指令行工具
  • 9.2 Kafka Connect
  • 9.3 Kafka Mirror Maker
  • 9.4 Kafka Streams
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要介紹Kafka現有的應用工具,對一般使用者而言,這些應用工具已經足夠應對大多數的場景。不過,我們還可以利用Kafka現有的特性和功能來擴充一些進階應用,比如延時(遲)隊列、重試隊列等,大家可以在第11章中查閱相關的内容。

第10章:Kafka監控

  • 10.1 監控資料的來源
  • 10.2 消費滞後
  • 10.3 同步失效分區
  • 10.4 監控名額說明
  • 10.5 監控子產品
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述如何自定義實作-一個Kafka監控系統,其中包括頁面整體的布局把控、監控資料的來源、監控名額的說明,以及監控子產品在整個Kafka應用生态中所處的地位。

第11章:進階應用

  • 11.1 過期時間(TTL)
  • 11.2 延時隊列
  • 11.3 死信隊列和重試隊列
  • 11.4 消息路由
  • 11.5 消息軌迹
  • 11.6 消息審計
  • 11.7 消息代理
  • 11.8 消息中間件選型
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述如何針對原生的Kafka實作一些擴充類的進階應用,包含過期時間、延時隊列、死信隊列、重試隊列、消息路由、消息軌迹和消息代理。

第12章:Kafka與Spark的內建

  • 12.1 Spark的安裝及簡單應用
  • 12.2 Spark程式設計模型
  • 12.3 Spark的運作結構
  • 12.4 Spark Streaming簡介
  • 12.5 Kafka與Spark Streaming的整合
  • 12.6 Spark SQL
  • 12.7 Structured Streaming
  • 12.8 Kafka與Structured Streaming的整合
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
深入了解kafka_5年開發碼農,靠着這部kafka核心設計,成功入職阿裡,定級P7寫在前邊第1章:初識Kafka第2章:生産者第3章:消費者第4章:主題與分區第5章:日志存儲第6章:深入服務端第7章:深入用戶端第8章:可靠性探究第9章:Kafka應用第10章:Kafka監控第11章:進階應用第12章:Kafka與Spark的內建後記
本章主要講述了Spark中的相關概念,包括Spark的整體架構、Spark 的程式設計模型、Spark運作架構、Spark Streaming和Structured Streaming,這裡使用的篇幅比介紹Kafka Streams時用的篇幅要多,因為筆者認為從Spark的角度去了解流式計算(處理),進而再去了解KafkaStreams要容易得多。

後記

身處大資料時代,對于分布式架構的要求會越來越高,随着技術的更新,也是需要越來越多的學習充實,比如對于Redis、Zookeeper、Nginx等常見分布式架構的深入學習,就成了我們的日常學習目标。

隻有學習更新充實自己,才能在這個大資料時代盡情徜徉!!!

對于文中提到的kafka核心設計和原理實踐的PDF文檔有興趣的朋友,請轉發文章後關注小編,并私信回複【學習】即可哦~~~

喜歡文章請多多點贊評論轉發,讓更多人看到獲益,關注小編,你們的支援就是小編最大的創作源泉!!!