|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
第一部分 快速入門
第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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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事件流。
|
|
|
|
|
|
|
|
|
|
|
|