Apache Kafka实战 封面

Apache Kafka实战

评分 4.2
字数
164.4万字
章节数
271
ISBN
9787121337765

标签

内容简介

作者结合典型的使用场景,对Kafka整个技术体系进行了较为全面的讲解,以便读者能够举一反三,直接应用于实践。同时,本书还对Kafka的设计原理及其流式处理组件进行了较深入的探讨,并给出了翔实的案例。本书共分为10章:第1章全面介绍消息引擎系统以及Kafka的基本概念与特性,快速带领读者走进Kafka的世界;第2章简要回顾了Apache Kafka的发展历史;第3章详细介绍了Kafka集群环境的搭建;第4、5章深入探讨了Kafka客户端的使用方法;第6章带领读者一览Kafka内部设计原理;第7~9章以实例的方式讲解了Kafka集群的管理、监控与调优;第10章介绍了Kafka新引入的流式处理组件。

编辑推荐

《Apache Kafka实战》由胡夕编著,电子工业出版社出版,是一本聚焦于Apache Kafka这一主流分布式消息系统的实战指南。本书在豆瓣上获得了较高的评分,普遍评价其内容详实,贴近生产环境。胡夕作为Kafka领域的资深专家,拥有丰富的实践经验,这保证了本书的实用性与权威性。

从专业角度看,本书最大的价值在于其清晰的实战导向。它不仅系统性地讲解了Kafka的核心概念,架构设计和工作原理,更重要的是,深入剖析了集群部署,性能调优,监控运维以及与上下游生态(如Spark,Flink)集成的具体方案。书中包含了大量来自真实业务场景的配置示例,问题排查思路和最佳实践,这对于正在或计划将Kafka应用于关键业务系统的开发者,架构师而言,具有直接的参考价值。它帮助读者跨越从理解概念到解决实际问题的鸿沟。

阅读本书,你能获得的不仅是Kafka的使用手册,更是构建高可靠,高性能数据管道的方法论。书中对Kafka新特性的解读和对未来趋势的展望,也体现了内容的时效性和前瞻性。对于希望深入消息队列,流处理领域的技术人员,这本书是一本值得精读的案头工具书。

适合谁读

适合

  • 正在或计划在生产环境中使用Kafka进行系统开发的工程师和架构师。
  • 希望深入理解分布式消息系统,流处理平台原理的中高级后端开发者。
  • 需要负责Kafka集群的部署,性能调优和日常运维的运维工程师。
  • 对大数据生态(如Spark,Flink)与消息队列集成感兴趣的数据平台开发者。

不适合

  • 对分布式系统,消息队列尚无任何基础概念的纯编程初学者。
  • 仅需要了解Kafka最基础API调用,无需深入原理和运维的浅度使用者。

阅读建议

  1. 建议结合实际的开发或测试环境进行阅读,动手实践书中的配置和代码示例。
  2. 可将本书作为参考手册,在遇到具体部署或性能问题时,针对性查阅相关章节。
  3. 阅读时关注作者对设计权衡和问题排查思路的阐述,这比记住具体命令更有价值。

出版社简介

电子工业出版社 中国 · 成立于 1982 年

电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。

目录

  1. 版权信息
  2. 作者介绍
  3. 前言
  4. 第1章 认识ApacheKafka
  5. 1.1Kafka快速入门
  6. 1.1.1 下载并解压缩Kafka二进制代码压缩包文件
  7. 1.1.2 启动服务器
  8. 1.1.3 创建topic
  9. 1.1.4 发送消息
  10. 1.1.5 消费消息
  11. 1.2 消息引擎系统
  12. 1.2.1 消息设计
  13. 1.2.2 传输协议设计
  14. 1.2.3 消息引擎范型
  15. 1.2.4 Java消息服务
  16. 1.3Kafka概要设计
  17. 1.3.1 吞吐量/延时
  18. 1.3.2 消息持久化
  19. 1.3.3 负载均衡和故障转移
  20. 1.3.4 伸缩性
  21. 1.4Kafka基本概念与术语
  22. 1.4.1 消息
  23. 1.4.2 topic和partition
  24. 1.4.3 offset
  25. 1.4.4 replica
  26. 1.4.5 leader和follower
  27. 1.4.6 ISR
  28. 1.5Kafka使用场景
  29. 1.5.1 消息传输
  30. 1.5.2 网站行为日志追踪
  31. 1.5.3 审计数据收集
  32. 1.5.4 日志收集
  33. 1.5.5 Event Sourcing
  34. 1.5.6 流式处理
  35. 1.6 本章小结
  36. 第2 章 Kafka发展历史
  37. 2.1Kafka的历史
  38. 2.1.1 背景
  39. 2.1.2Kafka横空出世
  40. 2.1.3Kafka开源
  41. 2.2Kafka版本变迁
  42. 2.2.1Kafka的版本演进
  43. 2.2.2Kafka的版本格式
  44. 2.2.3 新版本功能简介
  45. 2.2.4 旧版本功能简介
  46. 2.3 如何选择Kafka版本
  47. 2.3.1 根据功能场景
  48. 2.3.2 根据客户端使用场景
  49. 2.4Kafka与Confluent
  50. 2.5 本章小结
  51. 第3章 Kafka线上环境部署
  52. 3.1 集群环境规划
  53. 3.1.1 操作系统的选型
  54. 3.1.2 磁盘规划
  55. 3.1.3 磁盘容量规划
  56. 3.1.4 内存规划
  57. 3.1.5 CPU规划
  58. 3.1.6 带宽规划
  59. 3.1.7 典型线上环境配置
  60. 3.2 伪分布式环境安装
  61. 3.2.1 安装Java
  62. 3.2.2 安装ZooKeeper
  63. 3.2.3 安装单节点Kafka集群
  64. 3.3 多节点环境安装
  65. 3.3.1 安装多节点ZooKeeper集群
  66. 3.3.2 安装多节点Kafka
  67. 3.4 验证部署
  68. 3.4.1 测试topic创建与删除
  69. 3.4.2 测试消息发送与消费
  70. 3.4.3 生产者吞吐量测试
  71. 3.4.4 消费者吞吐量测试
  72. 3.5 参数设置
  73. 3.5.1 broker端参数
  74. 3.5.2 topic级别参数
  75. 3.5.3 GC参数
  76. 3.5.4 JVM参数
  77. 3.5.5 OS参数
  78. 3.6 本章小结
  79. 第4章 producer开发
  80. 4.1 producer概览
  81. 4.2 构造producer
  82. 4.2.1 producer程序实例
  83. 4.2.2 producer主要参数
  84. 4.3 消息分区机制
  85. 4.3.1 分区策略
  86. 4.3.2 自定义分区机制
  87. 4.4 消息序列化
  88. 4.4.1 默认序列化
  89. 4.4.2 自定义序列化
  90. 4.5 producer拦截器
  91. 4.6 无消息丢失配置
  92. 4.6.1 producer端配置
  93. 4.6.2 broker端配置
  94. 4.7 消息压缩
  95. 4.7.1Kafka支持的压缩算法
  96. 4.7.2 算法性能比较与调优
  97. 4.8 多线程处理
  98. 4.9 旧版本producer
  99. 4.10 本章小结
  100. 第5章 consumer开发
  101. 5.1 consumer概览
  102. 5.1.1 消费者(consumer)
  103. 5.1.2 消费者组(consumer group)
  104. 5.1.3 位移(offset)
  105. 5.1.4 位移提交
  106. 5.1.5__consumer_offsets
  107. 5.1.6 消费者组重平衡(consumer group rebalance)
  108. 5.2 构建consumer
  109. 5.2.1 consumer程序实例
  110. 5.2.2 consumer脚本命令
  111. 5.2.3 consumer主要参数
  112. 5.3 订阅topic
  113. 5.3.1 订阅topic列表
  114. 5.3.2 基于正则表达式订阅topic
  115. 5.4 消息轮询
  116. 5.4.1 poll内部原理
  117. 5.4.2 poll使用方法
  118. 5.5 位移管理
  119. 5.5.1 consumer位移
  120. 5.5.2 新版本consumer位移管理
  121. 5.5.3 自动提交与手动提交
  122. 5.5.4 旧版本consumer位移管理
  123. 5.6 重平衡(rebalance)
  124. 5.6.1 rebalance概览
  125. 5.6.2 rebalance触发条件
  126. 5.6.3 rebalance分区分配
  127. 5.6.4 rebalance generation
  128. 5.6.5 rebalance协议
  129. 5.6.6 rebalance流程
  130. 5.6.7 rebalance监听器
  131. 5.7 解序列化
  132. 5.7.1 默认解序列化器
  133. 5.7.2 自定义解序列化器
  134. 5.8 多线程消费实例
  135. 5.8.1 每个线程维护一个KafkaConsumer
  136. 5.8.2 单KafkaConsumer实例+多worker线程
  137. 5.8.3 两种方法对比
  138. 5.9 独立consumer
  139. 5.10 旧版本consumer
  140. 5.10.1 概览
  141. 5.10.2 high-level consumer
  142. 5.10.3 low-level consumer
  143. 5.11 本章小结
  144. 第6章 Kafka设计原理
  145. 6.1 broker端设计架构
  146. 6.1.1 消息设计
  147. 6.1.2 集群管理
  148. 6.1.3 副本与ISR设计
  149. 6.1.4 水印(watermark)和leader epoch
  150. 6.1.5 日志存储设计
  151. 6.1.6 通信协议(wire protocol)
  152. 6.1.7 controller设计
  153. 6.1.8 broker请求处理
  154. 6.2 producer端设计
  155. 6.2.1 producer端基本数据结构
  156. 6.2.2 工作流程
  157. 6.3 consumer端设计
  158. 6.3.1 consumer group状态机
  159. 6.3.2 group管理协议
  160. 6.3.3 rebalance场景剖析
  161. 6.4 实现精确一次处理语义
  162. 6.4.1 消息交付语义
  163. 6.4.2 幂等性producer(idempotent producer)
  164. 6.4.3 事务(transaction)
  165. 6.5 本章小结
  166. 第7章 管理Kafka集群
  167. 7.1 集群管理
  168. 7.1.1 启动broker
  169. 7.1.2 关闭broker
  170. 7.1.3 设置JMX端口
  171. 7.1.4 增加broker
  172. 7.1.5 升级broker版本
  173. 7.2 topic管理
  174. 7.2.1 创建topic
  175. 7.2.2 删除topic
  176. 7.2.3 查询topic列表
  177. 7.2.4 查询topic详情
  178. 7.2.5 修改topic
  179. 7.3 topic动态配置管理
  180. 7.3.1 增加topic配置
  181. 7.3.2 查看topic配置
  182. 7.3.3 删除topic配置
  183. 7.4 consumer相关管理
  184. 7.4.1 查询消费者组
  185. 7.4.2 重设消费者组位移
  186. 7.4.3 删除消费者组
  187. 7.4.4 kafka-consumer-offset-checker
  188. 7.5 topic分区管理
  189. 7.5.1 preferred leader选举
  190. 7.5.2 分区重分配
  191. 7.5.3 增加副本因子
  192. 7.6Kafka常见脚本工具
  193. 7.6.1 kafka-console-producer脚本
  194. 7.6.2 kafka-console-consumer脚本
  195. 7.6.3 kafka-run-class脚本
  196. 7.6.4 查看消息元数据
  197. 7.6.5 获取topic当前消息数
  198. 7.6.6 查询__consumer_offsets
  199. 7.7 API方式管理集群
  200. 7.7.1 服务器端API管理topic
  201. 7.7.2 服务器端API管理位移
  202. 7.7.3 客户端API管理topic
  203. 7.7.4 客户端API查看位移
  204. 7.7.5 0.11.0.0版本客户端API
  205. 7.8 MirrorMaker
  206. 7.8.1 概要介绍
  207. 7.8.2 主要参数
  208. 7.8.3 使用实例
  209. 7.9Kafka安全
  210. 7.9.1 SASL+ACL
  211. 7.9.2 SSL加密
  212. 7.10 常见问题
  213. 7.11 本章小结
  214. 第8章 监控Kafka集群
  215. 8.1 集群健康度检查
  216. 8.2 MBean监控
  217. 8.2.1 监控指标
  218. 8.2.2 指标分类
  219. 8.2.3 定义和查询JMX端口
  220. 8.3 broker端JMX监控
  221. 8.3.1 消息入站/出站速率
  222. 8.3.2 controller存活JMX指标
  223. 8.3.3 备份不足的分区数
  224. 8.3.4 leader分区数
  225. 8.3.5 ISR变化速率
  226. 8.3.6 broker I/O工作处理线程空闲率
  227. 8.3.7 broker网络处理线程空闲率
  228. 8.3.8 单个topic总字节数
  229. 8.4 clients端JMX监控
  230. 8.4.1 producer端JMX监控
  231. 8.4.2 consumer端JMX监控
  232. 8.5 JVM监控
  233. 8.5.1 进程状态
  234. 8.5.2 GC性能
  235. 8.6 OS监控
  236. 8.7 主流监控框架
  237. 8.7.1 JmxTool
  238. 8.7.2 kafka-manager
  239. 8.7.3KafkaMonitor
  240. 8.7.4KafkaOffset Monitor
  241. 8.7.5 CruiseControl
  242. 8.8 本章小结
  243. 第9章 调优Kafka集群
  244. 9.1 引言
  245. 9.2 确定调优目标
  246. 9.3 集群基础调优
  247. 9.3.1 禁止atime更新
  248. 9.3.2 文件系统选择
  249. 9.3.3 设置swapiness
  250. 9.3.4 JVM设置
  251. 9.3.5 其他调优
  252. 9.4 调优吞吐量
  253. 9.5 调优延时
  254. 9.6 调优持久性
  255. 9.7 调优可用性
  256. 9.8 本章小结
  257. 第10章 KafkaConnect与KafkaStreams
  258. 10.1 引言
  259. 10.2KafkaConnect
  260. 10.2.1 概要介绍
  261. 10.2.2 standalone Connect
  262. 10.2.3 distributed Connect
  263. 10.2.4 开发connector
  264. 10.3KafkaStreams
  265. 10.3.1 流处理
  266. 10.3.2KafkaStreams核心概念
  267. 10.3.3KafkaStreams与其他框架的异同
  268. 10.3.4 Word Count实例
  269. 10.3.5KafkaStreams应用开发
  270. 10.3.6KafkaStreams状态查询
  271. 10.4 本章小结

常见问题

这本书的代码示例是基于哪个版本的Kafka?
本书主要基于当时较新的Kafka版本进行讲解,具体版本请查阅书中前言或相关章节说明。由于Kafka迭代较快,阅读时需注意API或配置的潜在变化,但核心架构和设计思想具有长期参考价值。
书中是否包含了Kafka安全认证和权限管理的内容?
是的,作为一本实战指南,本书通常涵盖生产环境必需的安全主题,如SASL,ACL等机制的配置与使用,具体章节请查阅目录。
与官方文档相比,这本书的优势在哪里?
官方文档侧重特性说明和API引用,而本书的优势在于整合了系统化的知识体系,来自实践的最佳实践,常见问题的解决方案以及与其他系统的集成思路,提供了更贴近工程实践的上下文和决策指导。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

胡夕 作者

胡夕是一位中文技术图书作者,公开资料有限,目前可确认的代表作品为《Apache Kafka实战》。该书围绕 Apache Kafka 这一分布式流处理平台展开,属于人工智能相关分类下的技术实践类读物。从作品题材看,胡夕的关注点集中在消息中间件与实时数据处理领域,写作取向偏向实战应用,面向希望在实际项目中部署和使用 Kafka 的开发者与工程技术人员。由于库内仅收录其作品一种,关于他的国籍、生卒年、教育背景与职业经历均无可靠信息,本简介不作推断。就现有资料而言,胡夕的写作风格以技术落地为导向,注重将平台机制与工程实践相结合,其作品在中文 Kafka 学习资料中具有一定参考价值。

同类高分