-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Kafka源碼解析與實戰

( 簡體 字)
作者:王亮 編著類別:1. -> 程式設計 -> Kafka
譯者:
出版社:機械工業出版社Kafka源碼解析與實戰 3dWoo書號: 48105
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:11/1/2017
頁數:257
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111584018
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

我開始接觸分布式計算的時候,正好需要利用Spark結合Kafka進行流式處理。恰巧的是Kafka和Spark底層都是利用Scala語言編寫的,并且當時市面上有關Kafka的中文書籍幾乎沒有,因此正好利用這個機會學習了Scala語言,并且通讀了Kafka和Spark的源碼,隨后把日常的積累通過博客的形式慢慢記錄下來。在這一年多的積累過程中,發現有關Kafka的中文書籍還是很缺乏,便有了總結出書的想法,而恰在這個時候吳怡編輯通過博客聯系上了我,希望我把日常的積累總結成Kafka的專業性書籍,分享給更廣大的從事大數據相關工作的人群。

本書將從初學者的角度出發,循序漸進地講解Kafka內部的實現原理,但是由于Kafka是基于Scala語言編寫的,因此為了更好地閱讀本書,希望讀者對于Scala語言有大致的了解。

閱讀指南

本書將從Kafka的內部實現原理、運維工具、客戶端編程以及實際應用這四個方面出發,系統闡述有關Kafka的各方面知識,全書共10章,每章的大致內容如下。

第1章介紹Kafka誕生的背景、Kafka在LinkedIn內部的應用、Kafka的主要設計目標以及為什么使用消息系統。

第2章介紹Kafka的基本組成、拓撲結構及其內部的通信協議。

第3章描述Kafka集群組成的基本元素Broker Server的啟動以及內部的模塊組成。通過閱讀這一章,讀者能對Broker Server有整體上的印象,為之后章節的閱讀打下基礎。

第4章描述Broker Server內部的九大基本模塊:SocketServer、KafkaRequestHandlerPool、LogManager、ReplicaManager、OffsetManager、KafkaScheduler、KafkaApis、KafkaHealthcheck和TopicConfigManager。

第5章介紹Broker Server的控制管理模塊KafkaController,這個模塊負責整個Kafka集群的管理,例如:Topic的新建和刪除、分區狀態和副本狀態的轉換、集群的負載均衡管理等。

第6章介紹三個維護腳本:kafka-topics.sh、kafka-reassign-partitions.sh和kafka-preferred-replica-election.sh,它們分別涉及Topic的生命周期管理、Topic分區的重分配和分區首選副本的選擇。

第7章從設計原則、示例代碼、模塊組成和發送模式四個部分介紹有關消息生產者的相關知識,從設計原則至客戶端編程,從客戶端編程到內部實現原理,由淺入深,循序漸進地講解。

第8章分別介紹兩種消費者:簡單消費者和高級消費者。針對每種消費者都將依次從設計原則、消費者流程、示例代碼以及原理解析四個部分介紹消費者的相關知識。

第9章介紹Kafka與典型大數據系統的集成,包括:Kafka和Storm的集成、Kafka和ELK的集成、Kafka和Hadoop的集成以及Kafka和Spark的集成。希望通過本章使讀者對Kafka和第三方大數據平臺集成有大致的了解。

第10章用綜合實例描述了Kafka的應用,案例描述Kafka作為數據總線在安防整體解決方案中的作用,通過車輛人臉圖片數據的入庫、視頻數據的入庫、數據延時的監控、數據質量的監控、布控統計和容災備份6個業務,簡要闡述內部的實現原理。

本書是基于0.8.2版本的Kafka編寫的,其相關配套的源碼可以從Kafka的官方網站上下載,下載地址為http://kafka.apache.org/downloads,也可以從開源或者私有軟件項目托管平臺GitHub上下載,下載地址為https://github.com/apache/kafka。為了簡化代碼流程描述,筆者會將一些日志打印等不影響閱讀的代碼用“……”代替,如果需要知道“……”代表的實際含義,可以參考源碼包中的真實代碼。

本書特點

由淺入深,循序漸進:本書從LinkedIn(領英)公司內部大數據架構講起,引出消息隊列Kafka,接著講解Kafka的基本架構,然后著重分析Kafka內部的各模塊實現細節。從誕生背景至架構組成,再到內部實現細節,由淺入深,循序漸進,讓讀者在閱讀時能夠逐步了解Kafka。

由里到外,層層剖析:本書不僅講解Kafka內部的實現原理,而且還詳細描述Kafka外部的維護工具,對外的客戶端編程原理以及和第三方集成的方式。由里到外,層層剖析,讓讀者在閱讀時能夠更加全面地掌握Kafka。

圖文并茂,生動形象:本書在講解Kafka的過程中穿插了大量的圖片,直觀地描述了工作原理,使讀者在閱讀時能夠加深對代碼的理解。

讀者對象

本書適合以下人群閱讀:

想熟悉典型消息系統架構的大數據從業人員。

想了解分布式系統開發的軟件工程師。

想掌握Kafka內部實現原理的中高級開發人員。

想搭建傳統大數據框架的系統分析師。

致謝

首先感謝我的夫人在我背后默默的付出,是她給了我動力,陪伴我度過了長達半年之久的枯燥時光,堅定了我完成此書的決心。其次感謝機械工業出版社吳怡編輯的鼓勵和支持,是她促成了這本書的出版。接著感謝我的魚兒們(布隆迪、金頭虎、藍茉莉、三間鼠和反游貓),每當我思緒混亂的時候可以靜靜地看著它們慢慢梳理。

在本書成書的過程中也得到了許多同事和同學的支持、鼓勵,在此一并致謝。

由于作者水平及能力有限,加之時間倉促,本書難免存在錯誤和不妥之處,懇請廣大讀者批評指正,郵箱地址為:wangliang168219@126.com。
內容簡介:

本書從LinkedIn(領英)公司內部大數據框架的演變講起,引申出Kafka消息隊列誕生的緣由。接著講解Kafka的基本架構,圍繞Kafka內部的十一條通信協議講解內部的各個模塊的實現細節,包括基本模塊和控制管理模塊。前者包括SocketServer(監聽Socket請求)、KafkaRequestHandlerPool(請求處理資源池)、LogManager(日志管理)、ReplicaManager(分區副本管理)、OffsetManager(偏移量管理)、KafkaScheduler(后臺任務調度資源池)、KafkaApis(業務邏輯實現層)、KafkaHealthcheck(提供Broker健康狀態)、TopicConfigManager(Topic配置信息管理);后者包括KafkaController(控制管理模塊)。然后介紹Kafka的運維工具,不僅介紹具體如何使用,而且分析其內部的代碼實現。緊接著介紹Kafka的客戶端編程(生產者和消費者的使用方式),講解如何進行客戶端編程,并分析了生產者和消費者的設計原則和實現原理。最后闡述Kafka和其他開源大數據組件的集成方式以及Kafka在安防整體解決方案中的實際應用。



主要內容包括:

為什么要使用消息隊列Kafka

揭秘典型消息系統內部各基本模塊的交互原理

典型消息系統元數據管理功能的實現細節

運維人員如何正確管理Kafka集群

如何編寫Kafka客戶端代碼

Kafka如何與其他開源大數據組件集成





內容簡介

本書系統介紹Kafka的實現原理和應用方法,并介紹Kafka的運維工具、客戶端編程方法和第三方集成方式,深入淺出、圖文并茂、分析透徹。本書共10章,主要內容包括:第1章介紹Kafka誕生的背景和主要設計目標。第2章介紹Kafka的基本組成、拓撲結構以及內部的通信協議。第3章介紹Broker Server及內部的模塊組成。第4章介紹Broker Server內部的九大基本模塊。第5章介紹Broker的控制管理模塊。第6章介紹Topic的管理工具。第7章從設計原則、示例代碼、模塊組成和發送模式四個方面介紹有關消息生產者的相關知識。第8章介紹兩種消費者:簡單消費者和高級消費者。第9章介紹Kafka的典型應用,包括與Storm、ELK、Hadoop、Spark典型大數據系統的集成。第10章介紹了一個綜合實例,描述Kafka作為數據總線在安防整體解決方案中的作用。
目錄:



前言

第1章 Kafka簡介 1

1.1 Kafka誕生的背景 1

1.2 Kafka在LinkedIn內部的應用 3

1.3 Kafka的主要設計目標 4

1.4 為什么使用消息系統 4

1.5 本章小結 5

第2章 Kafka的架構 6

2.1 Kafka的基本組成 6

2.2 Kafka的拓撲結構 8

2.3 Kafka內部的通信協議 9

2.4 本章小結 12

第3章 Broker概述 13

3.1 Broker的啟動 13

3.2 Broker內部的模塊組成 15

3.3 本章小結 18

第4章 Broker的基本模塊 19

4.1 SocketServer 19

4.2 KafkaRequestHandlerPool 25

4.3 KafkaApis 27

4.3.1 LogManager 27

4.3.2 ReplicaManager 37

4.3.3 OffsetManager 47

4.3.4 KafkaScheduler 51

4.3.5 KafkaApis 52

4.4 KafkaHealthcheck 81

4.5 TopicConf?igManager 83

4.6 本章小結 85

第5章 Broker的控制管理模塊 86

5.1 KafkaController的選舉策略 86

5.2 KafkaController的初始化 91

5.2.1 Leader狀態下KafkaController的初始化 91

5.2.2 Standby狀態下KafkaController的初始化 94

5.3 Topic的分區狀態轉換機制 95

5.3.1 分區狀態的分類 95

5.3.2 分區狀態的轉換 96

5.3.3 PartitionStateMachine模塊的啟動 102

5.4 Topic分區的領導者副本選舉策略 103

5.4.1 NoOpLeaderSelector 104

5.4.2 Off?linePartitionLeaderSelector 104

5.4.3 ReassignedPartitionLeader-Selector 106

5.4.4 PreferredReplicaPartition-LeaderSelector 107

5.4.5 ControlledShutdownLeader-Selector 108

5.5 Topic分區的副本狀態轉換機制 109

5.5.1 副本狀態的分類 110

5.5.2 副本狀態的轉換 111

5.5.3 ReplicaStateMachine模塊的啟動 117

5.6 KafkaController內部的監聽器 118

5.6.1 TopicChangeListener 119

5.6.2 AddPartitionsListener 121

5.6.3 PartitionsReassignedListener 122

5.6.4 ReassignedPartitionsIsr-ChangeListener 128

5.6.5 PreferredReplicaElection-Listener 130

5.6.6 BrokerChangeListener 132

5.6.7 DeleteTopicsListener 135

5.7 Kafka集群的負載均衡流程 136

5.8 Kafka集群的Topic刪除流程 140

5.9 KafkaController的通信模塊 146

5.10 本章小結 150

第6章 Topic的管理工具 151

6.1 kafka-topics.sh 151

6.1.1 createTopic 153

6.1.2 alterTopic 156

6.1.3 listTopics 160

6.1.4 describeTopic 161

6.1.5 deleteTopic 163

6.2 kafka-reassign-partitions.sh 164

6.2.1 generateAssignment 166

6.2.2 executeAssignment 167

6.2.3 verifyAssignment 170

6.3 kafka-preferred-replica-election.sh 172

6.4 本章小結 175

第7章 生產者 176

7.1 設計原則 176

7.2 示例代碼 176

7.3 模塊組成 180

7.3.1 ProducerSendThread 180

7.3.2 ProducerPool 182

7.3.3 DefaultEventHandler 184

7.4 發送模式 189

7.4.1 同步模式 189

7.4.2 異步模式 189

7.5 本章小結 192

第8章 消費者 193

8.1 簡單消費者 193

8.1.1 設計原則 193

8.1.2 消費者流程 194

8.1.3 示例代碼 195

8.1.4 原理解析 200

8.2 高級消費者 202

8.2.1 設計原則 202

8.2.2 消費者流程 203

8.2.3 示例代碼 204

8.2.4 原理解析 205

8.3 本章小結 227

第9章 Kafka的典型應用 228

9.1 Kafka和Storm的集成 228

9.1.1 Storm簡介 228

9.1.2 示例代碼 230

9.2 Kafka和ELK的集成 235

9.2.1 ELK簡介 235

9.2.2 配置流程 236

9.3 Kafka和Hadoop的集成 237

9.3.1 Hadoop簡介 237

9.3.2 示例代碼 239

9.4 Kafka和Spark的集成 242

9.4.1 Spark簡介 242

9.4.2 示例代碼 245

9.5 本章小結 247

第10章 Kafka的綜合實例 248

10.1 安防大數據的主要應用 248

10.2 Kafka在安防整體解決方案中的角色 249

10.3 典型業務 250

10.3.1 車輛人臉圖片數據的入庫 251

10.3.2 視頻數據的入庫 252

10.3.3 數據延時的監控 254

10.3.4 數據質量的監控 256

10.3.5 布控統計 258

10.3.6 容災備份 259

10.4 本章小結 260
序: