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)
買這商品的人也買了...
-
$450$356 -
$480$360 -
$580$458 -
$1,280$998 -
$414$393 -
$580$458 -
$474$450 -
$658PostgreSQL 修煉之道:從小工到專家, 2/e
-
$588$559 -
$299$284 -
$580$458 -
$880$695 -
$650$507 -
$600$468 -
$417Redis 數據庫從入門到實踐
-
$454深入理解 Java 併發
-
$713JUnit 實戰, 3/e
-
$704Istio最佳實戰
-
$474$450 -
$680$510 -
$505$475 -
$580$458 -
$580$458 -
$750$585 -
$720$562
相關主題
商品描述
本書旨在介紹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