展开全部

主编推荐语

本书介绍Kafka的技术原理和应用技巧。

内容简介

全书内容包括如何安装和配置Kafka、如何使用KafkaAPI、Kafka的设计原则和可靠性保证,以及Kafka的一些架构细节,如复制协议、控制器和存储层。

本书列举了一些非常流行的Kafka应用场景,比如基于事件驱动的微服务系统的消息总线、流式处理应用程序和大规模数据管道。

通过学习本书,你不仅能够深入理解这项大数据核心技术,还能够将所学知识付诸实践,在生产环境中更好地运行Kafka,并基于它构建稳健的高性能应用程序。

目录

  • 版权信息
  • 版权声明
  • O'Reilly Media, Inc.介绍
  • 业界评论
  • 本书赞誉
  • 第2版序
  • 第1版序
  • 前言
  • 第1章 初识Kafka
  • 1.1 发布与订阅消息系统
  • 1.1.1 如何开始
  • 1.1.2 独立的队列系统
  • 1.2 Kafka 登场
  • 1.2.1 消息和批次
  • 1.2.2 模式
  • 1.2.3 主题和分区
  • 1.2.4 生产者和消费者
  • 1.2.5 broker 和集群
  • 1.2.6 多集群
  • 1.3 为什么选择 Kafka
  • 1.3.1 多个生产者
  • 1.3.2 多个消费者
  • 1.3.3 基于磁盘的数据保留
  • 1.3.4 伸缩性
  • 1.3.5 高性能
  • 1.3.6 平台特性
  • 1.4 数据生态系统
  • 应用场景
  • 1.5 起源故事
  • 1.5.1 LinkedIn 的问题
  • 1.5.2 Kafka 的诞生
  • 1.5.3 走向开源
  • 1.5.4 商业化
  • 1.5.5 命名
  • 1.6 开始 Kafka 之旅
  • 第2章 安装Kafka
  • 2.1 环境配置
  • 2.1.1 选择操作系统
  • 2.1.2 安装 Java
  • 2.1.3 安装 ZooKeeper
  • 2.2 安装 broker
  • 2.3 配置 broker
  • 2.3.1 常规配置参数
  • 2.3.2 主题的默认配置
  • 2.4 选择硬件
  • 2.4.1 磁盘吞吐量
  • 2.4.2 磁盘容量
  • 2.4.3 内存
  • 2.4.4 网络
  • 2.4.5 CPU
  • 2.5 云端的 Kafka
  • 2.5.1 微软 Azure
  • 2.5.2 AWS
  • 2.6 配置 Kafka 集群
  • 2.6.1 需要多少个 broker
  • 2.6.2 broker 配置
  • 2.6.3 操作系统调优
  • 2.7 生产环境的注意事项
  • 2.7.1 垃圾回收器选项
  • 2.7.2 数据中心布局
  • 2.7.3 共享 ZooKeeper
  • 2.8 小结
  • 第3章 Kafka生产者
  • 3.1 生产者概览
  • 3.2 创建 Kafka 生产者
  • 3.3 发送消息到 Kafka
  • 3.3.1 同步发送消息
  • 3.3.2 异步发送消息
  • 3.4 生产者配置
  • 3.4.1 client.id
  • 3.4.2 acks
  • 3.4.3 消息传递时间
  • 3.4.4 linger.ms
  • 3.4.5 buffer.memory
  • 3.4.6 compression.type
  • 3.4.7 batch.size
  • 3.4.8 max.in.flight.requests.per.connection
  • 3.4.9 max.request.size
  • 3.4.10 receive.buffer.bytes 和 send.buffer.bytes
  • 3.4.11 enable.idempotence
  • 3.5 序列化器
  • 3.5.1 自定义序列化器
  • 3.5.2 使用 Avro 序列化数据
  • 3.5.3 在 Kafka 中使用 Avro 记录
  • 3.6 分区
  • 自定义分区策略
  • 3.7 标头
  • 3.8 拦截器
  • 3.9 配额和节流
  • 3.10 小结
  • 第4章 Kafka消费者
  • 4.1 Kafka 消费者相关概念
  • 4.1.1 消费者和消费者群组
  • 4.1.2 消费者群组和分区再均衡
  • 4.1.3 群组固定成员
  • 4.2 创建 Kafka 消费者
  • 4.3 订阅主题
  • 4.4 轮询
  • 线程安全
  • 4.5 配置消费者
  • 4.5.1 fetch.min.bytes
  • 4.5.2 fetch.max.wait.ms
  • 4.5.3 fetch.max.bytes
  • 4.5.4 max.poll.records
  • 4.5.5 max.partition.fetch.bytes
  • 4.5.6 session.timeout.ms 和 heartbeat.interval.ms
  • 4.5.7 max.poll.interval.ms
  • 4.5.8 default.api.timeout.ms
  • 4.5.9 request.timeout.ms
  • 4.5.10 auto.offset.reset
  • 4.5.11 enable.auto.commit
  • 4.5.12 partition.assignment.strategy
  • 4.5.13 client.id
  • 4.5.14 client.rack
  • 4.5.15 group.instance.id
  • 4.5.16 receive.buffer.bytes 和 send.buffer.bytes
  • 4.5.17 offsets.retention.minutes
  • 4.6 提交和偏移量
  • 4.6.1 自动提交
  • 4.6.2 提交当前偏移量
  • 4.6.3 异步提交
  • 4.6.4 同步和异步组合提交
  • 4.6.5 提交特定的偏移量
  • 4.7 再均衡监听器
  • 4.8 从特定偏移量位置读取记录
  • 4.9 如何退出
  • 4.10 反序列化器
  • 4.10.1 自定义反序列化器
  • 4.10.2 在消费者里使用 Avro 反序列器
  • 4.11 独立的消费者:为什么以及怎样使用不属于任何群组的消费者
  • 4.12 小结
  • 第5章 编程式管理Kafka
  • 5.1 AdminClient 概览
  • 5.1.1 异步和最终一致性 API
  • 5.1.2 配置参数
  • 5.1.3 扁平的结构
  • 5.1.4 额外的话
  • 5.2 AdminClient 生命周期:创建、配置和关闭
  • 5.2.1 client.dns.lookup
  • 5.2.2 request.timeout.ms
  • 5.3 基本的主题管理操作
  • 5.4 配置管理
  • 5.5 消费者群组管理
  • 5.5.1 查看消费者群组
  • 5.5.2 修改消费者群组
  • 5.6 集群元数据
  • 5.7 高级的管理操作
  • 5.7.1 为主题添加分区
  • 5.7.2 从主题中删除消息
  • 5.7.3 首领选举
  • 5.7.4 重新分配副本
  • 5.8 测试
  • 5.9 小结
  • 第6章 深入Kafka
  • 6.1 集群的成员关系
  • 6.2 控制器
  • 新控制器 KRaft
  • 6.3 复制
  • 6.4 处理请求
  • 6.4.1 生产请求
  • 6.4.2 获取请求
  • 6.4.3 其他请求
  • 6.5 物理存储
  • 6.5.1 分层存储
  • 6.5.2 分区的分配
  • 6.5.3 文件管理
  • 6.5.4 文件格式
  • 6.5.5 索引
  • 6.5.6 压实
  • 6.5.7 压实的工作原理
  • 6.5.8 被删除的事件
  • 6.5.9 何时会压实主题
  • 6.6 小结
  • 第7章 可靠的数据传递
  • 7.1 可靠性保证
  • 7.2 复制
  • 7.3 broker 配置
  • 7.3.1 复制系数
  • 7.3.2 不彻底的首领选举
  • 7.3.3 最少同步副本
  • 7.3.4 保持副本同步
  • 7.3.5 持久化到磁盘
  • 7.4 在可靠的系统中使用生产者
  • 7.4.1 发送确认
  • 7.4.2 配置生产者的重试参数
  • 7.4.3 额外的错误处理
  • 7.5 在可靠的系统中使用消费者
  • 7.5.1 消费者的可靠性配置
  • 7.5.2 手动提交偏移量
  • 7.6 验证系统可靠性
  • 7.6.1 验证配置
  • 7.6.2 验证应用程序
  • 7.6.3 在生产环境中监控可靠性
  • 7.7 小结
  • 第8章 精确一次性语义
  • 8.1 幂等生产者
  • 8.1.1 幂等生产者的工作原理
  • 8.1.2 幂等生产者的局限性
  • 8.1.3 如何使用幂等生产者
  • 8.2 事务
  • 8.2.1 事务的应用场景
  • 8.2.2 事务可以解决哪些问题
  • 8.2.3 事务是如何保证精确一次性的
  • 8.2.4 事务不能解决哪些问题
  • 8.2.5 如何使用事务
  • 8.2.6 事务 ID 和隔离
  • 8.2.7 事务的工作原理
  • 8.3 事务的性能
  • 8.4 小结
  • 第9章 构建数据管道
  • 9.1 构建数据管道时需要考虑的问题
  • 9.1.1 及时性
  • 9.1.2 可靠性
  • 9.1.3 高吞吐量和动态吞吐量
  • 9.1.4 数据格式
  • 9.1.5 转换
  • 9.1.6 安全性
  • 9.1.7 故障处理
  • 9.1.8 耦合性和灵活性
  • 9.2 何时使用 Connect API 或客户端 API
  • 9.3 KafkaConnect
  • 9.3.1 运行 Connect
  • 9.3.2 连接器示例:文件数据源和文件数据池
  • 9.3.3 连接器示例:从 MySQL 到 ElasticSearch
  • 9.3.4 单一消息转换
  • 9.3.5 深入理解 Connect
  • 9.4 Connect 之外的选择
  • 9.4.1 其他数据存储系统的数据摄入框架
  • 9.4.2 基于图形界面的 ETL 工具
  • 9.4.3 流式处理框架
  • 9.5 小结
  • 第10章 跨集群数据镜像
  • 10.1 跨集群镜像的应用场景
  • 10.2 多集群架构
  • 10.2.1 跨数据中心通信的一些现实情况
  • 10.2.2 星型架构
  • 10.2.3 双活架构
  • 10.2.4 主备架构
  • 10.2.5 延展集群
  • 10.3 MirrorMaker
  • 10.3.1 配置 MirrorMaker
  • 10.3.2 多集群复制拓扑
  • 10.3.3 保护 MirrorMaker
  • 10.3.4 在生产环境中部署 MirrorMaker
  • 10.3.5 MirrorMaker 调优
  • 10.4 其他跨集群镜像方案
  • 10.4.1 Uber 的 uReplicator
  • 10.4.2 LinkedIn 的 Brooklin
  • 10.4.3 Confluent 的跨数据中心镜像解决方案
  • 10.5 小结
  • 第11章 保护Kafka
  • 11.1 锁住 Kafka
  • 11.2 安全协议
  • 11.3 身份验证
  • 11.3.1 SSL
  • 11.3.2 SASL
  • 11.3.3 重新认证
  • 11.3.4 安全更新不停机
  • 11.4 加密
  • 端到端加密
  • 11.5 授权
  • 11.5.1 AclAuthorizer
  • 11.5.2 自定义授权
  • 11.5.3 安全方面的考虑
  • 11.6 审计
  • 11.7 保护 ZooKeeper
  • 11.7.1 SASL
  • 11.7.2 SSL
  • 11.7.3 授权
  • 11.8 保护平台
  • 保护密码
  • 11.9 小结
  • 第12章 管理Kafka
  • 12.1 主题操作
  • 12.1.1 创建新主题
  • 12.1.2 列出集群中的所有主题
  • 12.1.3 列出主题详情
  • 12.1.4 增加分区
  • 12.1.5 减少分区
  • 12.1.6 删除主题
  • 12.2 消费者群组
  • 12.2.1 列出并描述消费者群组信息
  • 12.2.2 删除消费者群组
  • 12.2.3 偏移量管理
  • 12.3 动态配置变更
  • 12.3.1 覆盖主题的默认配置
  • 12.3.2 覆盖客户端和用户的默认配置
  • 12.3.3 覆盖 broker 的默认配置
  • 12.3.4 查看被覆盖的配置
  • 12.3.5 移除被覆盖的配置
  • 12.4 生产和消费
  • 12.4.1 控制台生产者
  • 12.4.2 控制台消费者
  • 12.5 分区管理
  • 12.5.1 首选首领选举
  • 12.5.2 修改分区的副本
  • 12.5.3 转储日志片段
  • 12.5.4 副本验证
  • 12.6 其他工具
  • 12.7 不安全的操作
  • 12.7.1 移动集群控制器
  • 12.7.2 移除待删除的主题
  • 12.7.3 手动删除主题
  • 12.8 小结
  • 第13章 监控Kafka
  • 13.1 指标基础
  • 13.1.1 指标来自哪里
  • 13.1.2 需要哪些指标
  • 13.1.3 应用程序健康检测
  • 13.2 服务级别目标
  • 13.2.1 服务级别定义
  • 13.2.2 哪些指标是好的 SLI
  • 13.2.3 将 SLO 用于告警
  • 13.3 broker 的指标
  • 13.3.1 诊断集群问题
  • 13.3.2 非同步分区的艺术
  • 13.3.3 broker 指标
  • 13.3.4 主题的指标和分区的指标
  • 13.3.5 Java 虚拟机监控
  • 13.3.6 操作系统监控
  • 13.3.7 日志
  • 13.4 客户端监控
  • 13.4.1 生产者指标
  • 13.4.2 消费者指标
  • 13.4.3 配额
  • 13.5 滞后监控
  • 13.6 端到端监控
  • 13.7 小结
  • 第14章 流式处理
  • 14.1 什么是流式处理
  • 14.2 流式处理相关概念
  • 14.2.1 拓扑
  • 14.2.2 时间
  • 14.2.3 状态
  • 14.2.4 流和表
  • 14.2.5 时间窗口
  • 14.2.6 处理保证
  • 14.3 流式处理设计模式
  • 14.3.1 单事件处理
  • 14.3.2 使用本地状态
  • 14.3.3 多阶段处理和重分区
  • 14.3.4 使用外部查找:流和表的连接
  • 14.3.5 表与表的连接
  • 14.3.6 流与流的连接
  • 14.3.7 乱序事件
  • 14.3.8 重新处理
  • 14.3.9 交互式查询
  • 14.4 Streams 示例
  • 14.4.1 字数统计
  • 14.4.2 股票市场统计
  • 14.4.3 填充点击事件流
  • 14.5 Streams 架构概览
  • 14.5.1 构建拓扑
  • 14.5.2 优化拓扑
  • 14.5.3 测试拓扑
  • 14.5.4 扩展拓扑
  • 14.5.5 在故障中存活下来
  • 14.6 流式处理应用场景
  • 14.7 如何选择流式处理框架
  • 14.8 小结
  • 附录A 在其他操作系统中安装Kafka
  • A.1 在 Windows 系统中安装 Kafka
  • A.1.1 使用 Windows 的 Linux 子系统
  • A.1.2 使用原生 Java 包
  • A.2 在 macOS 系统中安装 Kafka
  • A.2.1 使用 Homebrew
  • A.2.2 手动安装
  • 附录B 其他Kafka工具
  • B.1 综合性平台
  • B.2 集群部署和管理
  • B.3 监控和查看数据
  • B.4 客户端开发库
  • B.5 流式处理
  • 关于作者
  • 关于封面
展开全部

评分及书评

评分不足
2个评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。