当前位置:首页 > 科技数码

郑奇 郑奇煌:除了学习笔记,也许你还需要流程图

正七黄

郑目前在杭州一家互联网风险控制公司工作。他主要专注于大数据、流媒体计算和中间件。他希望自己能在技术的道路上越走越远,用技术为社会创造价值和财富。

不定期更新个人博客(zqhxuyuan.github.io)分享技术学习经验。

采访记录:你是如何对卡夫卡产生兴趣的?

起初,我是通过庄在Github上改造的metaq和刘的jafka接触到卡夫卡的,但并没有开始对其进行深入的研究。

我工作中的主要任务是大数据Spark的开发,部分流媒体任务会由卡夫卡处理。因为业务主要是用Scala语言开发的,所以想学习一个与Scala相关的开源项目。对我来说,Spark的一些概念比较难懂,所以我选择了卡夫卡作为研究对象,相对比较好理解。

决定写《卡夫卡技术内幕》的原因是什么?

在学习了很多关于卡夫卡的优秀资料之后,比如郭俊和黎志涛的博客,我想对其背后的技术原理有更深入的了解,所以我决定研究一下源代码。断断续续看了一个多月,画了很多图,把学习笔记放到博客上。从读者反馈来看,效果还不错。也许是脑子里的发烧,也许是内心追求的动力。2016年6月和7月,我联系了图灵的编辑王郡华,表示打算写书。她还是鼓励我写,认为这本书可以填补空国内没有出版过卡夫卡相关书籍的空白。当时除了英文版的《学习卡夫卡》,真的没有其他完整的资料,更坚定了我写书的决心。

如何定义「技术上追求的人」?技术领域你尊重谁?

我认为“追求技术的人”是能够用技术为社会创造价值和财富的人,他们推动社会不断进步。与这些人相比,我觉得自己目前只是一个“码农”,在技术精深的道路上还有一段漫长而曲折的旅程。就我的圈子来说,我崇拜的是Linus和Linux之父乔布斯这样的大神~

卡夫卡是一种什么样的工具?你擅长什么?

一开始,卡夫卡被定位为一个消息中间件。你把信息放进去,然后另一个人把信息拿出来消费。甚至很多不同的人都能拿出同样的信息。卡夫卡擅长将信息生产和消费脱钩,即使消费者消费太慢,也不会影响生产者。其主要应用包括日志收集、性能测量、网站监控等。比如把日志和性能信息放入卡夫卡,然后通过其他程序分析数据。在最新版本中,卡夫卡已经是一个成熟的流媒体数据处理平台,也支持将外部数据库导入导出到卡夫卡。

可以说,图形IT技术是卡夫卡科技内幕的一大特色。书里的画都是你自己画的吗?用什么绘图工具?画画比文字更高的要求是什么?

书中有近400张图片,都是用Mac的Keynote制作的。除了准确表达程序的执行步骤外,图片可以简洁地呈现。与文字相比,用图片来表达,比如不同成分之间的关系或者某个变量的含义,更容易被读者理解和接受。

听说你在写作过程中经历了很多困难,改稿三次。分享一下遇到的困难和不断修改稿件的原因?

初稿内容太多,代码和图片太详细,所以在第二稿中删除了一些简单的代码和图片。删除工作并没有想象的那么简单,我必须补充一个过渡性的解释。另外我边研究源代码边写,保证了准确性,但是对写有一定的限制。有些源代码很难理解,只好参考相关测试案例,一点一点啃官方英文设计文档。有些地方,理解不准确,就会被推翻重写。比如消费群的状态机,原来的流程图太长,后来好像有困难,就把这部分重新拆开了。

整体结构上,我一开始设计的顺序是生产者、经纪人、消费者。原因是引入了Broker的数据结构后,更容易理解消费者。后来发现如果把生产者和消费者作为客户来分析,组织结构会更好,我把消费者移到了Broker的前面。这样的调整需要提前对消费者涉及的Broker知识进行简单的介绍和修改。

而且我业余时间写作,进度真的有点慢。在此,我还要对编辑们的工作和耐心表示衷心的感谢,也对网上的一些网友的期待表示衷心的感谢,希望这本书不会让你失望。如果读者对这本书有什么意见,可以在图灵社区提出。

你是“完美主义者”吗?识别某物的标准是什么?

我觉得,既然选择了一件事,就应该了解它的所有细节,深入它的实现原理。如果你接受的东西,我的理解是你开发的一些软件很好用。当然这是相对的。你必须花时间去研究它背后的技术。不管事情有多难,最终都能解决。

如何看待从代码栈进行源代码分析?

其实关于源代码分析的书,最多是被太多代码(骂)了。在《卡夫卡技术内幕》这本书里,我已经尽量避免出现大段代码的情况,没有直接粘贴代码段。建议读者尽量打开IDE,和作者一起阅读源代码。这个效果最好。

其实我总觉得有很多遗憾,因为这本书没有更实际的部分了。Linux OpenMessaging规范的发起人冯佳建议我在书中加入巡航控制、RocketMQ和其他内容。我也从一开始就打算加入流处理框架和卡夫卡的融合,但是因为书太厚,我只能放弃我爱的东西。如果转载了,我再补充

相关内容。

你看过Hadoop,HBase,Storm等的源代码吗?,你在源代码研究方面有什么经验?

最早,我读了蔡斌的《Hadoop技术内幕》,边读边研究源代码,整理了800多页的学习笔记。当时我还在微博上发表了一系列文章#图解Hadoop源代码#(现在链接已经失效),作为粉丝的深夜福利(笑)。

看了分布式文件系统,结合HBase权威指南,学习了分布式存储框架HBase(0.94)。然后,主要结合hseagle和fxjwind博客研究了分布式计算Storm的源代码。当然最后看到这些开源项目后,有些部分并没有深入进去,但总的收益还是蛮大的。

在学习源代码的时候,我倾向于先学习一些优秀的博客文章,然后根据自己的理解总结成可视化的流程图,也写学习笔记。说来也巧,在研究了这些开源项目之后,我使用的绘图工具一般都是系统自带的工具,比如Window的Office/PlantUML,Ubuntu的LibreOffice,GoogleDoc,Mac的Keynote。

另外,阅读源代码难免会遇到一些困难,可以在这个时候参考测试用例。开源项目的测试用例一般都是完整的。订阅官方邮件,开发者会耐心及时回答你的问题。我在测试卡夫卡Streams时遇到的一些问题,被卡夫卡开发者解决了。

请介绍一下卡夫卡的编选原则?

卡夫卡一开始是一个分布式消息队列,它的客户端包括生产者和消费者。开发者用卡夫卡很简单。生产者向卡夫卡的某个主题发布消息,消费者从卡夫卡指定的主题获取消息并消费。消息队列服务器由代理节点、控制器、ZooKeeper等组件组成。服务器的代理节点为集群,实现负载均衡、容错、复制等功能。

卡夫卡也是一个流媒体数据处理平台(Kafka Streams),提供轻量级的流媒体计算解决方案。部署和使用都非常简单,只需启动一个普通的Java应用即可。消息进入卡夫卡后,应用程序可以使用轻量级库和流量计算操作符以流式和实时的方式处理消息。

此外,为了连接不同的数据源,卡夫卡还支持卡夫卡连接。这样,从数据源到卡夫卡的数据生成,流数据的实时处理,结果数据到目标数据源的同步,都是围绕着卡夫卡生态系统构建的。我们可以看到卡夫卡正在从消息队列到流媒体数据处理平台一步步成长。

阅读原文

1.《郑奇 郑奇煌:除了学习笔记,也许你还需要流程图》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《郑奇 郑奇煌:除了学习笔记,也许你还需要流程图》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/980425.html

上一篇

陕西凤翔发生重大刑事案件 背后真相是什么

下一篇

各省gdp 【地理视野】全国各省人均GDP在世界的排名

黎以边境的中国年轻扫雷手 他们都是排雷新手

黎以边境的中国年轻扫雷手 他们都是排雷新手

黎巴嫩边境上有一个“死亡地带”,由于黎巴嫩战争的一再爆发,那里已经埋设了数十万枚地雷。第18批赴黎巴嫩扫雷的中国官兵,只有几十年前的旧雷区分布图。在65名排雷和爆炸物处理人员中,59名是新手。他们虽然年轻,但却很好地完成了扫雷的挑战!黎巴嫩和以色列边境上年轻的中国扫雷艇黎巴嫩和以色列边境上年轻的中国扫雷艇黎巴...

掌上无限 海淀医院肾内科于国内率先开展无线掌上超声引导内瘘穿刺技术

  • 掌上无限 海淀医院肾内科于国内率先开展无线掌上超声引导内瘘穿刺技术
  • 掌上无限 海淀医院肾内科于国内率先开展无线掌上超声引导内瘘穿刺技术
  • 掌上无限 海淀医院肾内科于国内率先开展无线掌上超声引导内瘘穿刺技术

2024年奥运会 “东京奥运会2024年、2032年举办” 东京奥组委称都是假新闻

据新华社报道,东京奥组委CEO武藤民郎12日表示,东京奥运会取消或延期至2024年甚至2032年的消息是假消息。日本八卦娱乐刊物《每周真相》早前爆料,称东京奥运会将取消,改在2032年举办。此外,有媒体报道称,东京奥运会将于2024年举行,巴黎和洛杉矶奥运会将分别于2028年和2032年推迟四年举行。吴滕民郎...

2024年奥运会在哪个国家举办 “东京奥运会2024年、2032年举办” 东京奥组委称都是假新闻

2024年奥运会在哪个国家举办 “东京奥运会2024年、2032年举办” 东京奥组委称都是假新闻

据新华社报道,东京奥组委CEO武藤民郎12日表示,东京奥运会取消或延期至2024年甚至2032年的消息是假消息。日本八卦娱乐刊物《每周真相》早前爆料,称东京奥运会将取消,改在2032年举办。此外,有媒体报道称,东京奥运会将于2024年举行,巴黎和洛杉矶奥运会将分别于2028年和2032年推迟四年举行。吴滕民郎...

2024奥运会 “东京奥运会2024年、2032年举办” 东京奥组委称都是假新闻

据新华社报道,东京奥组委CEO武藤民郎12日表示,东京奥运会取消或延期至2024年甚至2032年的消息是假消息。日本八卦娱乐刊物《每周真相》早前爆料,称东京奥运会将取消,改在2032年举办。此外,有媒体报道称,东京奥运会将于2024年举行,巴黎和洛杉矶奥运会将分别于2028年和2032年推迟四年举行。吴滕民郎...

首批50城喜提5G 具体都是哪些城市

  • 首批50城喜提5G 具体都是哪些城市
  • 首批50城喜提5G 具体都是哪些城市
  • 首批50城喜提5G 具体都是哪些城市

beast 【技术干货】分化时间分析—beast2软件介绍

  • beast 【技术干货】分化时间分析—beast2软件介绍
  • beast 【技术干货】分化时间分析—beast2软件介绍
  • beast 【技术干货】分化时间分析—beast2软件介绍
香港激进分子发起罢买淘宝奇招 网友都是怎么吐槽的

香港激进分子发起罢买淘宝奇招 网友都是怎么吐槽的

随着“双十一”的临近,内地各大电商纷纷启动打折促销模式,全球“动手党”也在摩拳擦掌,部分香港激进派也想趁此,推出了所谓的“停止购买淘宝”活动。但是,鉴于完全抵制淘宝是不现实的,行动的发起者想出了一个让人哭笑不得的招数:“双十一”之后再买,因为这样至少可以保持低数据。网友说:夏天吃桃子:从来没见过这么蠢的组织。...