《深入理解Kafka:核心设计与实践原理》笔误及改进记录
2019年2月下旬笔者的有一本新书——《深入理解Kafka:核心设计与实践原理》上架,延续上一本《RabbitMQ实战指南》的惯例,本篇博文用来记录现在发现的一些笔误,一是给购书的朋友一个参考,以防被笔误所迷惑;二是提供一个记录笔误的地方,方便再次印刷修改之用,这样也能进一步的完善这本书。
本书出版之前已校稿多次,也邀请了专业的技术小伙伴进行校稿,但还是会有漏网之鱼,还望各位海涵。(本文长期更新)
小伙伴们也可以提供一些新发现的笔误之处,这里都会记录,为了鼓励大家,发现笔误的小伙伴会在下一次印刷的致谢中留下大名。具体形式参考《RabbitMQ实战指南》笔误及改进记录的做法。
目前致谢内容如下:
第六次印刷
- 11页 第3行“示例中选用按照包的是”改为“示例中选用的安装包是”。(by: 球)
第五次印刷
- 9页 中间“initLimit=10”上面的“# 投票选举新leader的初始化时间”改为“# 允许follower连接并同步到leader的初始化连接时间,以tickTime的倍数来表示”。 (by: BertYoung)
- 42页 倒数第二段中 2 个的 acks 改为 retries。【注意是 2个acks】(by: 汤乎乎、CodingWorkers)
- 173页 第一段“那么一个字节长度的 Varints 最大只能表示 64”中的64改为63,下面有关65的说辞也改为64:(by: asd_1234555)
第四次印刷
time:2020-04
- 128页 第2段(1)中 CreateTopicRequest 改为 CreateTopicsRequest,即:加一个s;(3)中 CreateTopicRequest改为 CreateTopicsRequest, CreateTopicResponse 改为 CreateTopicsResponse, 即:都加一个s。
- 274页 第二张图中下面的标注 Consume-Transform-Producer 应该改为 Consume-Transaform-Produce,不过这里是图片,可以直接把这个文字裁剪掉。下面的图例中标注了“consume-transform-produce结构”,所以裁剪掉也并不影响整体。
第三次印刷
time: 2019-05
- 20页 代码清单2-1 initConfig()方法中第5行的properties应该改为props。
- 62页 第一段第3行最后的 ConsumerRecord<K,V> 改成 ConsumerRecords<K,V> ,即加个s。
- 65页 最后第二段最后一行中“重复消费的发送”改为“重复消费的发生”,即把【发送】改为【发生】
- 73页 第二段第二行中“查到不到”改为“查不到” (by: 陈)
- 91页 第二段代码中 offsets.clear() 这一行删掉 (玩图思瑞佛)
- 109页 最后一段最后一行,brokerArray变量的值为[0,1,2,3,4,56,7,8],5 6中间少了个逗号。
- 160页 最后一段最后一行,把“基架”改为“机架”
- 180页 5.3节第二段最后一行,【对应地可以增加或缩小索引项的密度】改为【对应地可以缩小或增加索引项的密度】,即将增加和缩小的位置替换。
- 192页 第一段第二行中参数【log.index.interval.bytes】改为【log.index.size.max.bytes】
- 211页 倒数第二段第二行 【timeMs=1ms】改为【timeMs=1s】
- 364页 最后的 【 } else { 】 改为 【 } else if (ttl < 0) { 】 (by: 虚怀若谷)
- 400页 倒数最后一段第二行 把 6 改成 5 。
第二次印刷
time: 2019-03
- 57页第二段代码里面将“ProtostuffDeserializer.class.getName”改为“CompanyDeserializer.class.getName” (by: Snow)
- 64页 代码中“comsumed offset”改为“consumed”。(by: 默然)
- 94页 6.connections.max.idle.ms中的“关闭限制的连接”改为“关闭闲置的连接”。(by: bugskiller_cn)
- 104页第二段倒数第二行最后的topic.1_2应该改为topic_1.2。 (by: null)
- 124页最上面2个操作zk的步骤中 rmr和delete的位置互换。(by: bugskiller_cn)
- 187页最后一行,将日志分段2页加入deletableSegments,改为“也”。(by: djdsjh)
- 203页续表中的第3行nullable_bytes的描述:“…,其余情况同nullable_bytes”,此处应该为“其余情况同bytes”。(by: 小斌斌)
- 288页最后一段的最后一行的"follower3"应该改为“follower2”。(by:程序猿)
- 298页第6段开头“主读从写”改为“主写从读”。
改进:在12页中1.3节,有些读者会在kafka单机情况下创建副本因子为3的主题,结果显而易见的会出错,如果看懂第1.1节的话在这里是没有问题的。不过为了照顾初学者,在下一次印刷时会在1.3节的第二段最后加上一句:(Kafka集群模式下,broker数为3)
第一次印刷
time: 2019-01
笔误记录:
- 第32页的注意中“如果key为null,那么计算……”中间加一句,改为“如果key为null并且有可用分区时,那么计算得到的……” (by:wangfeiyang12345)
- 第43页第二段(就一行)中“关闭限制的连接”改为“关闭闲置的连接”。(by: 天蚕变)
- 第55页第3行,方法应为deserialize,不是serialize。(by: gyzhs20)
- 第93页中“2. fetch.max.bytes 第一行中”应该与fetch.min.bytes对应。(by:Solove‘俊)
欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。
《深入理解Kafka:核心设计与实践原理》笔误及改进记录相关推荐
- 《RabbitMQ实战指南》笔误及改进记录
2017年12月上旬笔者的一本新书--<RabbitMQ实战指南>上架,里面的校稿都是自己独自完成的,一共进行了15遍,但还是会有漏网之鱼.本篇博文用来记录现在发现的一些笔误,一是给购书的 ...
- 《RabbitMQ 实战指南》第五章 RabbitMQ 进阶(下)
<RabbitMQ 实战指南>第五章 RabbitMQ 进阶(下) 文章目录 <RabbitMQ 实战指南>第五章 RabbitMQ 进阶(下) 一.持久化 二.生产者确认 1 ...
- rabbitmq实战指南_RabbitMQ之脑裂
点击上方蓝色字体,选择"设为星标" 9 10 本文总结<RabbitMQ实战指南>网络分区章节,并亲自实践才有这篇文章,手动处理章节详细记录了操作过程中的注意事项.如果 ...
- 《RabbitMQ 实战指南》第四章 RabbitMQ进阶(上)
<RabbitMQ 实战指南>第四章 RabbitMQ进阶(上) 文章目录 <RabbitMQ 实战指南>第四章 RabbitMQ进阶(上) 一.简介 二.消息何去何从 1.m ...
- 《RabbitMQ 实战指南》第三章 客户端开发向导
<RabbitMQ 实战指南> 文章目录 <RabbitMQ 实战指南> 一.简介 二.连接 RabbitMQ 三.使用交换器和队列 1.exchangeDeclare 方法详 ...
- 《RabbitMQ 实战指南》第二章 RabbitMQ 入门
<RabbitMQ 实战指南> 文章目录 <RabbitMQ 实战指南> 一.相关概念介绍 1.生产者和消费者 2.队列 3.交换器.路由键.绑定 4.交换器类型 5.Rabb ...
- 《RabbitMQ 实战指南》第一章 RabbitMQ 简介
<RabbitMQ 实战指南>第一章 RabbitMQ 简介 文章目录 <RabbitMQ 实战指南>第一章 RabbitMQ 简介 一.什么是消息中间件 二.消息中间件的作用 ...
- RabbitMQ实战指南之RabbitMQ架构及运转流程
相关概念 RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成∶ 当你将一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,Rab ...
- php mq死信队列,【RabbitMQ 实战指南】一 死信队列
1.死信队列 DLX,全称为 Dead-Letter-Exchange,可以称之为死信交换器.当消息在一个队列中变成死信(dead message)之后,它能被发送到另一个交换器中,这个交换器就是DL ...
最新文章
- 古代password
- 通过访问列表实现MAC地址绑定,实现包过滤
- 简单web服务器学习总结
- 20张图表达程序员的心酸
- 使用Azure人脸API对图片进行人脸识别
- 应用工具 .NET Portability Analyzer 分析迁移dotnet core
- 生活 list.php,list.php
- 网络协议:TCP拥塞控制
- 【机器学习-西瓜书】八、集成学习:Boosting
- ionic build android release,ionic build android -release运行报错
- 转iOS深拷贝与浅拷贝 附NSSet讲解
- 关于ROS的设置问题
- mqtt测试工具(持续更新...)
- 高中计算机会考操作题程序设计,高中信息技术算法与程序设计题库(含答案)
- linux识别riser卡,一种应用在GPU服务器中可灵活配置的Riser卡的制作方法
- 沉迷于网络的人数_一个沉迷于追求的搜索者
- 移动硬盘坏点测试软件,移动硬盘坏道检测工具
- win10无限重启_系统更新后无限重启怎么办?
- 已解决ERROR in static/js/vendor.4925c830bef16dced0c0.js from UglifyJs Unexpected token: name (i)
- 持续精进——我的2017年终总结
热门文章
- FutureTask源码
- emacs python plugin_Windows上配置Emacs来开发Python及用Python扩展Emacs
- python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...
- hive 判断子字符串_Java中检查空字符串(null或空白)的方法有几种?
- 200924阶段一C++STL
- 【工具使用系列】关于 MATLAB 有限元分析,你需要知道的事
- python-ConfigParser模块【读写配置文件】
- android升级SDK后,XML graphical layout无法预览的解决
- 利用 Cosole 来学习、调试JavaScrip
- HYSBZ - 1026 windy数(数位dp)