J梳理了一下自己在入门 kafka 时读过的一些书, 希望能帮助到对 kafka 感兴趣的小伙伴.

  涉及到的书籍:

  kafka 权威指南

  Kafka: The Definitive Guide (kafka 权威指南的英文原版)

  Kafka入门与实践

  kafka技术内幕

  推荐的书籍阅读顺序:

  优先阅读 「kafka 权威指南」, 基于 kafka 0.8.0 版本, 并包含 0.9.0 版本中即将引入的重要特性. 整体内容的设计上要合理得多, 基础-核心-架构-原理-更多组件-管理运维, 一步步循序渐进, 用书中的话来说

  给予一个技术书籍作者最好的赞赏莫过于这句话 -- 如果在一开始接触这门技术时能看到这本书就好了

  推荐的阅读方式: 「精读」, 适合用来 构建 对 kafka 理解

  其次阅读 「Kafka入门与实践」, 基于 kafka 0.9.0 版本. 权威指南在讲解具体的组件的时候, 才会附上少量的代码, 并且配上详细的注释, 而这本书在讲解组件时细致入微, 不仅会有具体类/方法的代码呈现和分析, 多半还配有「流程图/运行图」 等辅助进行讲解, 并且在 实践 上有很多 「真知灼见」(或者说踩过一些坑). 如果希望在生产上使用, 很有必要快速的看一遍实践部分的相关内容.

  推荐的阅读方式: 「快速阅读」掌握整本书的大致结构, 在感兴趣的组件部分, 推荐配合最新的源码一起阅读. 尤其推荐「实践」相关部分的内容.

  需要更深入细致的了解的话, 「kafka技术内幕」值得入手, 基于 kafka 0.9.0 版本(当时最新) 做的深入解读, 700多页的厚度会让你非常有「充实感」. 直到今年技术总监和我聊, 希望在 kafka 上做一些技术准备时, 才从书架上解开了尘封.

  推荐阅读方式: 兴趣驱动是最好的, 作者就是这样的情况下慢慢积累出的这样厚厚一本书, 我对高可用和高性能部分比较感兴趣, 所以配合最新的源码, 精读了这部分内容

  Kafka: The Definitive Guide, 关于英文原版, 我阅读英文并不流畅, 所以还是中文书籍为主, 英文原版多是「辅助作用」, 分享一条小 tips

  在一些感觉「怪异」的地方查看一下原版, 往往有奇效

  举几个奇效的例子:

  kafka 中的 broker, 有本书里作者称之为 「代理」, 如果在原版里整体看过 kafka 各个组件及其英文, 就不容易被误导了

  关于复制, replication vs mirror: kafka 中有专门的 mirrorMaker 模块处理复制的任务, 而经典的数据库主从复制中, 多是使用 replication. 英文原版中就特意比较了这 2 个词

  技术类书籍想要获得好的读书效果, 当然要动手. 值得参考的 github 项目:

  apache/kafka: kafka 源码, 在深入的过程中, 看书可以很好的引路, 源码才是最好的老师

  wurstmeister/kafka-docker: 目前使用量最高的 kafka docker 镜像. 虽然 kafka 也支持单机部署. 但是如果不能动手跑一个 kafka 集群进行实践, 「那和咸鱼有什么区别」

  kafka-manager: 雅虎实现的 kafka 开源管理组件, 要上生产, 管理组件也必须得跟上才行

tech| kafka入门书籍导读的更多相关文章

  1. Kafka学习(一)kafka指南(about云翻译)

    kafka 权威指南中文版 问题导读 1. 为什么数据管道是数据驱动企业的一个关键组成部分? 2. 发布/订阅消息的概念及其重要性是什么? 第一章 初识 kafka 企业是由数据驱动的.我们获取信息, ...

  2. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...

  3. Kafka入门经典教程

      本帖最后由 desehawk 于 2015-5-3 00:45 编辑问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程 ...

  4. apache kafka源码分析-Producer分析---转载

    原文地址:http://www.aboutyun.com/thread-9938-1-1.html 问题导读1.Kafka提供了Producer类作为java producer的api,此类有几种发送 ...

  5. nomasp 博客导读:Android、UWP、Algorithm、Lisp(找工作中……

    Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸.本博客会持续更新.感谢您的支持.欢迎您的关注与留言.博客有多个专栏,各自是关于 Android应用开发 .Wi ...

  6. java导读

    导读:      我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构:第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了.第三,面向企业应用.计算的平台,J2EE. ...

  7. 打造实时数据集成平台——DataPipeline基于Kafka Connect的应用实践

    导读:传统ETL方案让企业难以承受数据集成之重,基于Kafka Connect构建的新型实时数据集成平台被寄予厚望. 在4月21日的Kafka Beijing Meetup第四场活动上,DataPip ...

  8. Kafka#4:存储设计 分布式设计 源码分析

    https://sites.google.com/a/mammatustech.com/mammatusmain/kafka-architecture/4-kafka-detailed-archite ...

  9. TOP100summit:【分享实录-Microsoft】基于Kafka与Spark的实时大数据质量监控平台

    本篇文章内容来自2016年TOP100summit Microsoft资深产品经理邢国冬的案例分享.编辑:Cynthia 邢国冬(Tony Xing):Microsoft资深产品经理.负责微软应用与服 ...

随机推荐

  1. 解决Sublime_Text不能安装插件的方法

    channel.json文件请到下面的网址下载: http://download.csdn.net/detail/xiaoming11654187/9866213 1.先将channel.json文件 ...

  2. delphi ---break,exit,continue等跳出操作的区别

    1.break 强制退出最近的一层循环(注意:只能放在循环里:而且是只能跳出最近的一层循环),用于从for.while.repeat语句中强制退出 2.continue 用于从for.while.re ...

  3. Java 语言基础之数组常见操作

    对数组操作最基本的动作: 存和取 核心思想: 就是对角标的操作 数组常见操作: 1, 遍历 2, 获取最大值和最小值 3, 排序 4, 查找 5, 折半查找 // 1. 遍历 int[] arr = ...

  4. javascript自定义属性的应用

    你知道吗?JavaScript可以为任何HTML元素添加任意的自定义属性,而且你可能无意中已经使用过自定义属性了,那么自定义属性通常有哪些应用呢? 1.想用“匹配”.对应关系的时候就用索引值 2.同时 ...

  5. Vue(7)- vue-cookies、极验滑动验证geetest、vue-router的导航守卫

    一.vue-cookies 参考文档简书:https://www.jianshu.com/p/535b53989b39 参考文档npm:https://www.npmjs.com/package/vu ...

  6. java.lang.instrument: 一个Java对象占用多少字节?

    一.对象头包括两部分信息:Mark Word(标记字段)和 Klass Pointer(类型指针)   1. Mark Word 用于存储对象自身的运行时数据,如哈希码(HashCode).GC分代年 ...

  7. Python高级教程-Map/Reduce

    Python中的map()和reduce() Python内建了map()和reduce()函数. map() map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每 ...

  8. mysql监控报警工具

    #!/usr/bin/env python # coding:utf-8 import MySQLdb import requests, json import time url = "ht ...

  9. 关于python中的查询数据库内容中用到的fetchone()函数和fetchall()函数(转)还有fetchmany()

    最近在用python操作mysql数据库时,碰到了下面这两个函数,标记一下: fetchone() : 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() ...

  10. python中多重继承与获取对象

    1.python中多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承. 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__ ...