关于Kafka知识,一篇带你学会!Apache Kafka互联 实战整理PDF

前言

2011年年初,美国领英公司(Linkedln)开源了一款基础架构软件,以奥地利作家弗兰兹·卡夫卡(Franz Kafka)的名字命名,之后Linkedln将其贡献给Apache基金会,随后该软件于2012年10月成功完成孵化并顺利晋升为Apache顶级项目—这便是大名鼎鼎的ApacheKafka。

胡夕,北航计算机硕士毕业,目前就职于-家互联 金融公司,开源技术爱好者。曾任职于IBM、搜狗、微博等公司。对Kafka及其他开源流处理技术与框架有深刻认识,同时也是国内活跃的Kafka代码贡献者。对Kafka原理、运行机制以及应用开发都有较深的研究。

本书共分为10章:第1章全面介绍消息引擎系统以及Kafka的基本概念与特性,快速带领读者走进Kafka的世界;第2章简要回顾了Apache Kafka的发展历史;第3章详细介绍了Kafka集群环境的搭建;第4、5章深入探讨了Kafka客户端的使用方法;第6章带领读者一览Kafka内部设计原理;第7~9章以实例的方式讲解了Kafka集群的管理、监控与调优;第10章介绍了Kafka新引入的流式处理组件。

由于整个PDF文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以关注+转发后台私信【666】即可获得免费领取方式。

目录

第一章 认识Apache Kafka

Apache Kafka是由Apache软件基金会开发的一个开源消息系统项目,该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。

Kafka是一个分布式的、分区的、多复本的日志提交服务。它通过一种独一无二的设计提供了一个消息系统的功能

  • 1.1 Kafka快速入门
  • 1.2 消息引擎系统
  • 1.3 Kafka概要设计
  • 1.4 Kafka基本概念与术语
  • 1.5 Kafka使用场景
  • 1.6 本章小结
  • 第二章 kafka 发展历史

    Kafka设计之初是为了解决Linkedln公司数据管道(datapipe)问题

    KafkaProducer 的工作逻辑:将消息封装成 ProducerRecord 对象,然后使用KafkaProducer.send 将消息发送出去,事实上,其拿到消息后会通过序列化,根据本地缓存的元数据,确定目标分区,KafkaProducer 专门有一个 Selector I/O线程,负责将缓存区的消息分批次发送给Kafka broker

  • 2.1 Kafka的历史
  • 2.2 Kafka版本变迁
  • 2.3 如何选择Kafka版本
  • 2.4 Kafka与Confluent
  • 2.5 本章小结
  • 第三章 Kafka线上环境部署

    典型的生产环境至少需要部署多个节点共同组成一个分布式集群整体为我们提供服务。本章将会详细讨论生产环境中集群的安装、配置与验证。不过在此之前,我们还需要解决3个方面的问题。它们分别是操作系统的选型、硬件规划和容量规划

  • 3.1 集群环境规划
  • 3.2 伪分布式环境安装
  • 3.3 多节点环境安装
  • 3.4 验证部署
  • 3.5 参数设置
  • 3.6 本章小结
  • 第四章 producer开发

    不论Kafka如何演变,万变不离其宗,它一定有一些外部的生产者(producer)应用程序给自己发送消息,然后还有一些外部的消费者(consumer)应用程序读取 producer 发送的消息。

    本章着重讨论 Kafka 的 producer 设计以及基于 Java 版本 producer 的开发与使用。

  • 4.1 producer概览
  • 4.2 构造producer
  • 4.3 消息分区机制
  • 4.4 消息序列化
  • 4.5 producer拦截器
  • 4.6 无消息丢失配置
  • 4.7 消息压缩
  • 4.8 多线程处理
  • 4.9 旧版本 producer
  • 4.10 本章小结
  • 第五章 consumer开发

    不论Kafka如何演变,万变不离其宗的是它定有 一些外部的生产 者(producer) 应用程序给Kaftka发送消息,然后还有一些外部的消费者(consumer) 应用程序读取producer发送的消息。

  • 5.1 consumer概览
  • 5.2 构建consumer
  • 5.3 订阅topic
  • 5.4 消息轮询
  • 5.5 位移管理
  • 5.6 重平衡(rebalance)
  • 5.7 解序列化
  • 5.8 多线程消费实例
  • 5.9 独立consumer
  • 5.10 旧版本 consumer
  • 5.11 本章小结
  • 第六章Kafka设计原理

    前五章涵盖了Apache Kafka 在生产环境中使用的方方面面,详细讨论了如何安装部署Kafka,如何使用Kafka提供的Java版本producer API发送消息,以及如何使用Java版本consumer API消费消息。本章将介绍Kafka内部设计原理,带领读者深入了解Kafka内部结构。

  • 6.1 broker端设计架构
  • 6.2 producer端设计
  • 6.3 consumer端设计
  • 6.4 实现精确一次处理语义
  • 6.5 本章小结
  • 第七章 管理Kafka集群

    本章重点讲解Apache Kafka集群的运维管理、参数配置、工具脚本和常见问题的排查等内容,将基本涵盖Kafka运维相关的各个方面,从实践角度诠释主要脚本工具的使用方法。本章内容也为第8章“监控Kafka集群”内容的展开奠定了基础。

  • 7.1 集群管理
  • 7.2 topic管理
  • 7.3 topic动态配置管理
  • 7.4 consumer相关管理
  • 7.5 topic分区管理
  • 7.6 Kafka常见脚本工具
  • 7.7 API方式管理集群
  • 7.8 MirrorMaker
  • 7.9 Kafka安全
  • 第八章 监控Kafka集群

    对于运维人员而言,维护生产环境的一个重要内容就是监控集群的运行与状态。当出现问题时,系统管理员能做的只是从海量的日志中尝试定位异常行为发生的根本原因。这种排查问题的方法通常是低效率的,因此需要我们引入完善的监控指标以及框架来帮助管理Kafka集群。

    本章将重点讲解ApacheKafka集群监控指标以及如何监控Kafka集群,同时也会讨论如何利用这些指标诊断问题以及目前主流的第三方图形化监控框架的使用方法。

  • 8.1 集群健康度检查
  • 8.2 MBean监控
  • 8.3 broker端JMX监控
  • 8.4 clients端JMX监控
  • 8.5 JVM监控
  • 8.6 OS监控
  • 8.7 主流监控框架
  • 8.8 本章小结
  • 第九章 调优Kafka集群

    在第8章中,我们学习了监控 Apache Kafka 集群的方法以及目前各种主流的监控框架。本章将查看如何调优Apache Kafka 集群

  • 9.1 引言
  • 9.2 确定调优目标
  • 9.3 集群基础调优
  • 9.4 调优吞吐量
  • 9.5 调优延时
  • 9.6 调优持久性
  • 9.7 调优可用性
  • 9.8 本章小结
  • 第十章 Kafka Connect与Kafka Streams

    终于来到最后一章了。在前面的章节中我们系统地学习了实际使用Apache Kafka的各个方面。事实上,到目前为止,读者应该已经能够独立地在生产环境中部署一套完整的Kafka集群。本章我们将关注Apache Kafka 0.10.0.0版本新引入的两个特性Kafka Connet和Kafka Streams。

  • 10.1 引言
  • 10.2 Kafka Connect
  • 10.3 Kafka Streams
  • 10.4 本章小结
  • 推荐序

    由于整个PDF文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以关注+转发后台私信我【666】即可获得免费领取方式。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年9月9日
    下一篇 2022年9月9日

    相关推荐