2019年2月下旬笔者的有一本新书——《深入理解Kafka:核心设计与实践原理》上架,延续上一本《RabbitMQ实战指南》的惯例,本篇博文用来记录现在发现的一些笔误,一是给购书的朋友一个参考,以防被笔误所迷惑;二是提供一个记录笔误的地方,方便再次印刷修改之用,这样也能进一步的完善这本书。

本书出版之前已校稿多次,也邀请了专业的技术小伙伴进行校稿,但还是会有漏网之鱼,还望各位海涵。(本文长期更新)

小伙伴们也可以提供一些新发现的笔误之处,这里都会记录,为了鼓励大家,发现笔误的小伙伴会在下一次印刷的致谢中留下大名。具体形式参考《RabbitMQ实战指南》笔误及改进记录的做法。


目前致谢内容如下:《深入理解Kafka:核心设计与实践原理》笔误及改进记录_kafka

第六次印刷

  1. 11页 第3行“示例中选用按照包的是”改为“示例中选用的安装包是”。(by: 球)

第五次印刷

  1. 9页 中间“initLimit=10”上面的“# 投票选举新leader的初始化时间”改为“# 允许follower连接并同步到leader的初始化连接时间,以tickTime的倍数来表示”。 (by: BertYoung)
  2. 42页 倒数第二段中 2 个的 acks 改为 retries。【注意是 2个acks】(by: 汤乎乎、CodingWorkers)
  3. 173页 第一段“那么一个字节长度的 Varints 最大只能表示 64”中的64改为63,下面有关65的说辞也改为64:(by: asd_1234555)
    《深入理解Kafka:核心设计与实践原理》笔误及改进记录_安装包_02

第四次印刷

time:2020-04

  1. 128页 第2段(1)中 CreateTopicRequest 改为 CreateTopicsRequest,即:加一个s;(3)中 CreateTopicRequest改为 CreateTopicsRequest, CreateTopicResponse 改为 CreateTopicsResponse, 即:都加一个s。
  2. 274页 第二张图中下面的标注 Consume-Transform-Producer 应该改为 Consume-Transaform-Produce,不过这里是图片,可以直接把这个文字裁剪掉。下面的图例中标注了“consume-transform-produce结构”,所以裁剪掉也并不影响整体。

第三次印刷

time: 2019-05

  1. 20页 代码清单2-1 initConfig()方法中第5行的properties应该改为props。
  2. 62页 第一段第3行最后的 ConsumerRecord<K,V> 改成 ConsumerRecords<K,V> ,即加个s。
  3. 65页 最后第二段最后一行中“重复消费的发送”改为“重复消费的发生”,即把【发送】改为【发生】
  4. 73页 第二段第二行中“查到不到”改为“查不到” (by: 陈)
  5. 91页 第二段代码中 offsets.clear() 这一行删掉 (玩图思瑞佛)
  6. 109页 最后一段最后一行,brokerArray变量的值为[0,1,2,3,4,56,7,8],5 6中间少了个逗号。
  7. 160页 最后一段最后一行,把“基架”改为“机架”
  8. 180页 5.3节第二段最后一行,【对应地可以增加或缩小索引项的密度】改为【对应地可以缩小或增加索引项的密度】,即将增加和缩小的位置替换。
  9. 192页 第一段第二行中参数【log.index.interval.bytes】改为【log.index.size.max.bytes】
  10. 211页 倒数第二段第二行 【timeMs=1ms】改为【timeMs=1s】
  11. 364页 最后的 【 } else { 】 改为 【 } else if (ttl < 0) { 】 (by: 虚怀若谷)
  12. 400页 倒数最后一段第二行 把 6 改成 5 。

第二次印刷

time: 2019-03

  1. 57页第二段代码里面将“ProtostuffDeserializer.class.getName”改为“CompanyDeserializer.class.getName” (by: Snow)
  2. 64页 代码中“comsumed offset”改为“consumed”。(by: 默然)
  3. 94页 6.connections.max.idle.ms中的“关闭限制的连接”改为“关闭闲置的连接”。(by: bugskiller_cn)
  4. 104页第二段倒数第二行最后的topic.1_2应该改为topic_1.2。 (by: null)
  5. 124页最上面2个操作zk的步骤中 rmr和delete的位置互换。(by: bugskiller_cn)
  6. 187页最后一行,将日志分段2加入deletableSegments,改为“也”。(by: djdsjh)
  7. 203页续表中的第3行nullable_bytes的描述:“…,其余情况同nullable_bytes”,此处应该为“其余情况同bytes”。(by: 小斌斌)
  8. 288页最后一段的最后一行的"follower3"应该改为“follower2”。(by:程序猿)
  9. 298页第6段开头“主读从写”改为“主写从读”。

改进:在12页中1.3节,有些读者会在kafka单机情况下创建副本因子为3的主题,结果显而易见的会出错,如果看懂第1.1节的话在这里是没有问题的。不过为了照顾初学者,在下一次印刷时会在1.3节的第二段最后加上一句:(Kafka集群模式下,broker数为3)


第一次印刷

time: 2019-01
笔误记录:

  1. 第32页的注意中“如果key为null,那么计算……”中间加一句,改为“如果key为null并且有可用分区时,那么计算得到的……” (by:wangfeiyang12345)
  2. 第43页第二段(就一行)中“关闭限制的连接”改为“关闭闲置的连接”。(by: 天蚕变)
  3. 第55页第3行,方法应为deserialize,不是serialize。(by: gyzhs20)
  4. 第93页中“2. fetch.max.bytes 第一行中”应该与fetch.min.bytes对应。(by:Solove‘俊)

欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。
《深入理解Kafka:核心设计与实践原理》笔误及改进记录_安装包_03