Kafka 實戰 Kafka in Action

迪倫·斯科特(Dylan Scott)維克托·蓋莫夫(Viktor Gamov) 戴夫·克萊因(Dave Klein)

  • 出版商: 人民郵電
  • 出版日期: 2023-07-01
  • 售價: $539
  • 貴賓價: 9.5$512
  • 語言: 簡體中文
  • 頁數: 200
  • ISBN: 711561444X
  • ISBN-13: 9787115614445
  • 相關分類: Message Queue
  • 此書翻譯自: Kafka in Action
  • 立即出貨 (庫存 < 4)

  • Kafka 實戰-preview-1
  • Kafka 實戰-preview-2
Kafka 實戰-preview-1

買這商品的人也買了...

商品描述

本書旨在介紹Kafka的核心功能,以及如何在實際項目中使用它。本書主要內容包括Kafka的核心概念,如何使用Kafka Connect設置和執行基本ETL任務,如何將Kafka用於大型數據項目,如何執行管理任務,如何生成和使用事件流,如何在Java應用程序中使用Kafka,如何將Kafka實現為消息隊列等。通過閱讀本書,讀者應該很快就會掌握如何在日常工作流程中使用Kafka,還可以開始深入研究更高級的Kafka主題。

本書適合軟件開發人員閱讀,也可作為電腦相關專業的教材。

作者簡介

Dylan Scott是一名软件开发人员,拥有十多年Java和Perl开发经验。在将Kafka作为大型数据迁移项目的消息系统之后,Dylan又进一步探索Kafka和流式处理的世界。他使用过各种技术和消息队列产品,包括Mule、RabbitMQ、MQSeries和Kafka。Dylan拥有Sun Java SE 1.6、Oracle Web EE 6、Neo4j和Jenkins Engineer等方面的证书。

 

Viktor Gamov就职于Confluent公司。Confluent就是那家开发基于Kafka的事件流平台的公司。在Viktor的整个职业生涯中,他使用开源技术构建企业应用程序架构,积累了全面的专业知识。他喜欢帮助架构师与开发人员设计和开发低延迟、可伸缩且高可用的分布式系统。Viktor不仅是分布式系统、流式数据、JVM和DevOps等主题的专业会议讲师,还是JavaOne、Devoxx、OSCON、QCon等活动的常客。他是Enterprise Web Development(O’Reilly出版社)一书的合著者。

 

Dave Klein担任过开发人员、架构师、项目经理、作家、培训师、会议组织者等,主要研究方向是Kafka事件流。

目錄大綱

目錄

第 一部分 快速入門

 

第 1章 Kafka簡介 3

1.1 什麽是Kafka 4

1.2 Kafka的使用情況 7

1.2.1 開發人員的Kafka 7

1.2.2 向管理人員介紹Kafka 9

1.3 關於Kafka的謎團 9

1.3.1 Kafka只能與Hadoop一起使用 9

1.3.2 Kafka與其他消息系統是一樣的 10

1.4 現實世界中的Kafka 11

1.4.1 早期的例子 11

1.4.2 後來的例子 12

1.4.3 什麽時候不適合使用Kafka 13

1.5 其他在線資源 14

總結 14

 

第 2章 瞭解Kafka 15

2.1 發送和讀取一條消息 15

2.2 什麽是Broker 16

2.3 Kafka之旅 20

2.3.1 生產者和消費者 20

2.3.2 主題 23

2.3.3 ZooKeeper 24

2.3.4 Kafka的高級架構 25

2.3.5 提交日誌 26

2.4 其他API及其用途 26

2.4.1 Kafka Streams 27

2.4.2 Kafka Connect 28

2.4.3 AdminClient 28

2.4.4 ksqlDB 29

2.5 Confluent的客戶端 29

2.6 流式處理及術語解釋 32

2.6.1 流式處理 33

2.6.2 精確一次語義 34

總結 34

 

第二部分 應用Kafka

 

第3章 設計並實現一個Kafka項目 37

3.1 設計一個Kafka項目 37

3.1.1 重新設計已有的數據

架構 38

3.1.2 改變的第 一步 38

3.1.3 內置的特性 38

3.1.4 票據數據 40

3.2 設計傳感器事件 42

3.2.1 現有的問題 43

3.2.2 為什麽Kafka是最合適的 44

3.2.3 關於我們的設計 45

3.2.4 用戶數據需求 46

3.2.5 應用我們的問題清單 46

3.2.6 評審我們的設計 49

3.3 數據格式 50

3.3.1 數據規劃 50

3.3.2 配置依賴項 51

總結 56

第4章 生產者——數據的源頭 57

4.1 一個示例 57

4.2 生產者的配置參數 61

4.2.1 配置Broker地址列表 61

4.2.2 如何提升速度(或安全性) 62

4.2.3 時間戳 64

4.3 代碼實現 65

總結 73

第5章 消費者——解鎖數據 74

5.1 一個示例 74

5.1.1 消費者的配置屬性 76

5.1.2 理解偏移量 79

5.2 消費者之間的交互 82

5.3 跟蹤偏移量 82

5.3.1 組協調器 83

5.3.2 分區的分配策略 85

5.4 提交偏移量 86

5.5 從壓實的主題中讀取數據 88

5.6 工廠示例的消費者代碼 88

5.6.1 偏移量的配置選項 89

5.6.2 滿足設計需求 90

總結 93

第6章 Broker 94

6.1 Broker簡介 94

6.2 ZooKeeper的角色 95

6.3 Broker級別的配置選項 96

6.3.1 Kafka的應用程序日誌 98

6.3.2 服務器日誌 98

6.3.3 管理集群狀態 98

6.4 分區的首領和它們的職責 99

6.5 窺探Kafka 102

6.5.1 集群維護 103

6.5.2 增加一個Broker 104

6.5.3 升級集群 104

6.5.4 升級客戶端 104

6.5.5 備份 105

6.6 關於有狀態系統 105

6.7 練習 106

總結 108

第7章 主題和分區 109

7.1 主題 109

7.1.1 主題的配置選項 112

7.1.2 復制系數 114

7.2 分區 114

7.2.1 分區的位置 114

7.2.2 查看日誌 115

7.3 使用EmbeddedKafkaCluster 116

7.4 主題壓實 118

總結 120

第8章 Kafka的存儲 121

8.1 需要保存數據多長時間 121

8.2 移動數據 122

8.2.1 保留原始事件 123

8.2.2 擺脫批處理思維 123

8.3 工具 123

8.3.1 Apache Flume 124

8.3.2 Red Hat Debezium 125

8.3.3 Secor 126

8.3.4 數據存儲應用示例 126

8.4 將數據放回Kafka 127

8.5 Kafka支持的架構 128

8.5.1 Lambda架構 128

8.5.2 Kappa架構 129

8.6 多集群設置 130

8.7 基於雲和容器的存儲方案 131

總結 131

第9章 管理Kafka——工具和日誌 132

9.1 管理客戶端 132

9.1.1 在代碼中使用AdminClient 133

9.1.2 kcat 134

9.1.3 Confluent REST Proxy API 135

9.2 將Kafka作為systemd服務運行 137

9.3 日誌 137

9.3.1 Kafka的應用程序日誌 138

9.3.2 ZooKeeper的日誌 139

9.4 防火牆 140

9.5 指標 141

9.6 跟蹤 143

9.6.1 生產者邏輯 144

9.6.2 消費者邏輯 145

9.6.3 覆蓋客戶端 147

9.7 通用的監控工具 148

總結 148

 

第三部分 Kafka進階

 

第 10章 保護Kafka 151

10.1 安全性基礎 152

10.1.1 用SSL加密 153

10.1.2 Broker和客戶端之間的 SSL 154

10.1.3 Broker之間的SSL 156

10.2 Kerberos與SASL 157

10.3 Kafka的授權機制 158

10.3.1 訪問控制列表 158

10.3.2 基於角色的訪問控制 159

10.4 ZooKeeper 160

10.5 配額 160

10.5.1 網絡帶寬配額 161

10.5.2 請求速率配額 162

10.6 靜態數據 163

總結 164

第 11章 Schema Registry 165

11.1 Kafka成熟度模型 165

11.1.1 級別0 166

11.1.2 級別1 166

11.1.3 級別2 167

11.1.4 級別3 168

11.2 Schema Registry 168

11.2.1 安裝Confluent Schema Registry 168

11.2.2 註冊表的配置 169

11.3 Schema的特性 170

11.3.1 REST API 170

11.3.2 客戶端庫 171

11.4 兼容性規則 172

11.5 Schema Registry之外的選擇 174

總結 175

第 12章 流式處理 176

12.1 Kafka Streams 177

12.1.1 KStreams API DSL 178

12.1.2 KTable API 181

12.1.3 GlobalKTable API 181

12.1.4 Processor API 182

12.1.5 設置Kafka Streams 184

12.2 ksqlDB——一個事件流 數據庫 185

12.2.1 查詢 186

12.2.2 本地開發 186

12.2.3 ksqlDB的架構 188

12.3 更進一步 188

12.3.1 Kafka改進提案 188

12.3.2 值得瞭解的Kafka項目 189

12.3.3 社區Slack頻道 189

總結 189

附錄A 安裝 190

附錄B 客戶端示例 197