You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
9.1 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 用户故事 | 黄云:行百里者半九十
你好我是黄云目前是一名后端开发工程师坐标苏州已经工作三载有余了。在“Kafka核心技术与实战”专栏刚刚上线的时候我就第一时间订阅了。在学习专栏的几个月时间里我有许多心得体会想要跟你分享一下。
## 为什么要学习“Kafka核心技术与实战”专栏
众所周知在当今时代“大数据”已经成为了一个家喻户晓的概念。动辄GB级、TB级甚至是PB级的大数据都需要服务器在短时间内进行处理。如何充分利用每台服务器的性能削峰填谷就成为了数据处理的关键。Kafka作为一种主流的消息队列工具已经被很多大公司使用。掌握Kafka成为了大数据时代必不可少的专项技能。
我们公司目前也在用Kafka对接实时流量数据数据量约20GB/天。作为一名开发工程师我必须要尽快掌握Kafka的核心技术修炼专项技能才能使其更好地为我所用。一直以来在工作之余我都会主动地搜集Kafka的相关资料看各位大佬的分享。但是那些零散的碎片拼凑在一起却始终很难形成一个系统的知识体系这也是一直让我很头疼的事情。
## “道”与“术”的平衡
作为一名程序员我和很多人都一样看到好的东西就想动手实践。在刚刚了解到Kafka的强大功能之后我就迫不及待地参照Kafka官网的教程着手搭建Kafka的服务器。除此之外我还曾小试牛刀在1万条/s的实时环境对接中使用了Kafka作为消息队列。
但是,在实际使用过程中,我发现了一个严重的问题,那就是,**我只知道如何去用,但不知道如何用好**。意识到这个问题后,我赶紧查看了官网以及很多主流网站的文章。官网上将几百个参数一一列出,并注明含义,其他资料则普遍重理论,轻实践。总体来看,这些内容都将“道”放在了第一位,却完全忽略了“术”的实现。
说实话,我们程序员看到这些文章,其实是很恼火的。盯着满篇的原理,却完全不知道从何处下手,那就注定无法解决我的实际问题。
直到有一天我无意中发现胡夕老师的专栏“Kafka核心技术与实战”在极客时间上线了顿时有一种如获至宝的感觉。看完课程简介和开篇词之后我觉得这就是我一直期待看到的课程于是就立即订阅了。从此以后每周二、四、六准时学习更新的文章逐渐成为了我的习惯。
在学习过程中我印象最深刻的是胡夕老师在讲参数配置的时候在第7讲和第8讲的标题中用了3个“最”字即“最最最重要的集群参数配置”并且在文章里分享了最重要、最核心的集群参数配置。看完这两讲之后我一直以来持有的对于“Kafka配置优化过程中怎么有这么多参数”的怨念才得以消解。**不必贪多求全,只要掌握最核心的内容就可以了**。胡夕老师的专栏真正做到了“道”与“术”的平衡慢慢地为我揭开了Kafka的神秘面纱。
## 我是怎么学习专栏的?
说实话查看极客时间的专栏是一件十分愉悦的事情。每天清晨正式开始工作前的20分钟是我固定的学习专栏的时间。学习Kafka专栏时注意力必须高度集中因为里面干货非常多。如果只是粗浅阅读不加思考就会留下很多问题。
当我遇到困惑的时候,第一件事就是查看文章下面的评论。很多人的总结概括能力都非常强,能对信息进行二次加工和提炼,这些留言帮助我对文章内容进行了二次梳理。最重要的是,我经常在留言里看到和我一样的困惑,瞬间就有种找到同类的感觉,这也是一种很奇妙的体验。
胡夕老师回复也很及时,第一时间解决我们的疑惑。**今日疑,今日解,不积攒遗留问题**,也能让我更加高效地学习后面的内容。
在学习专栏时,我走过一些弯路,也在不断调整地自己的学习方法和习惯。在这个过程中,我吸取了一些经验,也有很多的感悟,想要跟你分享一下。
1. **多思考,多总结**。每次查看留言区评论的时候,我都会先自己思考一下问题的答案,等老师回复之后,我会对照着确认下答案。很多时候,我在留言区看其他人的总结,总觉得言简意赅,但是自己描述的话,就会发现自己完全没有这种抽象概括的能力。换句话说,就是**没有办法用自己的话描述出文章表达的含义,其实也就是没有真正地理解文章的内容**。所以,我就一直跟自己强调,要多总结,提升自己的概括能力。
2. **多动手实践,实践出真知**。专栏中有很多实践的知识,我每次发现可操作性比较强的内容时,就会自己在搭建的测试环境下进行实践,查看实践结果。这样一来,我就对课程的内容有了更好的理解与掌握。
3. **多回头看,不留疑惑**。我发现,专栏里的很多重点内容,我只读一遍的话,印象会不太深刻,但隔一段时间再去回顾,就会有很多新的认知和收获。有些章节满篇都是干货,一旦遇到不懂的术语,大脑就会本能地跳过。在意识到大脑的这个惯性动作之后,我再遇到不懂的问题时,就会主动花时间去查询相关资料,直到理解术语的含义。否则,一知半解地往下读,对后面的理解会有很大的影响。
4. **多记笔记**。对于一些我很感兴趣的课程内容,我会有针对性地进行记录。在记录时,我一般不会直接复制粘贴原文,而是用自己的话写出来。如果实在写不出来,就把原文摘抄一遍,这样也会加深理解。
5. **多提问**。针对一些自己实在无法理解的问题,我就让自己多提问、多留言。每次老师回答完我的问题,我都觉得非常开心,后续的学习劲头也会更高,这可能就是老师经常提到的提高参与感吧。
关于留言这件事情,我想跟你分享一下我曾经的心理变化。刚开始学习时,遇到不懂的问题,其实我是不敢提问的,因为我担心我之所以不懂这个问题,是自己理解能力有问题,怕提问的问题过于低级,只好藏着。但是后来我发现,越是这样,我越不懂,慢慢就丧失了很多学习热情。意识到这一点之后,我就及时调整了学习策略,不断提醒自己:对于思考之后实在不能理解的问题,一定要多问。**不藏拙,才是成长的最佳路径。**
## 学习专栏有什么收获?
学习这个专栏我最大的收获就是对Kafka的原理、机制以及参数的理解更加深入了。我很佩服胡夕老师的抽象概括能力。胡夕老师花费了一年多的时间阅读Kafka的源码以及相关文献但最后呈现给我们的并不是长篇大论而是经过多次抽象总结的内容。老师从我们用户最关心的入门、配置、客户端、内核、监控这几个点去介绍Kafka的内容将官方文档的上百个参数精简成十几个重要的参数将几百页的内容抽象成几十讲的核心知识。
这一点让我很受启发。在学习过程中,追求大而全并不好,我们只需要掌握实际生产环境中最常用的那么十几个参数,保障消息传输稳定、快速、不丢失就可以了。很多很深奥的内容,如果精力和时间允许的话,再去深究,**要以终为始,不能钻牛角尖**。
可能只有程序员才知道阅读大段的源码是多么痛苦的事情但胡夕老师做到了而且还在“加餐”中分享了他阅读源码的方法。令人欣喜的是胡夕老师是直接将源码在IDE中展示出来并且对着实际代码描述阅读代码的方式实操性很强。而这一点其实正好符合我当初选择学习Kafka专栏的预期。专栏里的大部分内容都是可以落地实践的。**勿在浮沙筑高台**,胡夕老师就是这样一步一步地带着我们稳步前进的。
## 总结
专栏不知不觉就结束了比较惭愧的是我后半段没能跟上老师的节奏做到更新1讲阅读1讲往往是堆积了好久才去阅读。但是我真的很感谢胡夕老师的付出老师在专栏里分享的内容让我对Kafka的参数以及一些实战性很强的知识形成了自己的理解。
胡夕老师在专栏中提过一句话,我印象非常深刻,“**行百里者半九十**”Kafka的学习之旅不会随着专栏的完结而停止只是读完专栏的内容其实才走了旅程的一半而已。后续的话针对专栏中提到的落地信息我会一一记录并实践对于Kafka真正做到能懂、会用、能用好。
好了,我的分享就到此结束了。你在学习专栏的过程中,有没有什么独特的学习方法和心路历程呢?欢迎你写在留言区,我很期待能跟你在这里交流、讨论,一起学习进步。