- 导读 | 构建 Kafka 工程和源码阅读环境、Scala 语言热身
- 开篇词 | 阅读源码,逐渐成了职业进阶道路上的 必选项
- 重磅加餐 | 带你快速入门 Scala 语言
- 01 | 日志段:保存消息文件的对象是怎么实现的?
- 02 | 日志(上):日志究竟是如何加载日志段的?
- 03 | 日志(下):彻底搞懂 Log 对象的常见操作
- 04 | 索引(上):改进的二分查找算法在 Kafka 索引的应用
- 05 | 索引(下):位移索引和时间戳索引的区别是什么?
- 06 | 请求通道:如何实现 Kafka 请求队列?
- 07 | SocketServer(上):Kafka 到底是怎么应用 NIO 实现网络通信的?
- 08 | SocketServer(中):请求还要区分优先级?
- 09 | SocketServer(下):请求处理全流程源码分析
- 10 | KafkaApis:Kafka 最重要的源码入口,没有之一
- 11 | Controller 元数据:Controller 都保存有哪些东西?有几种状态?
- 12 | ControllerChannelManager:Controller 如何管理请求发送?
- 13 | ControllerEventManager:变身单线程后的 Controller 如何处理事件?
- 14 | Controller 选举是怎么实现的?
- 15 | 如何理解 Controller 在 Kafka 集群中的作用?
- 16 | TopicDeletionManager: Topic 是怎么被删除的?
- 17 | ReplicaStateMachine:揭秘副本状态机实现原理
- 18 | PartitionStateMachine:揭秘分区状态机实现原理
- 19 | TimingWheel:探究 Kafka 定时器背后的高效时间轮算法
- 20 | DelayedOperation:Broker 是怎么延时处理请求的?
- 21 | AbstractFetcherThread:拉取消息分几步?
- 22 | ReplicaFetcherThread:Follower 拉取 Leader 消息是如何实现的?
- 23 | ReplicaManager(上):必须要掌握的副本管理类定义和核心字段
- 24 | ReplicaManager(中):副本管理器是如何读写副本的?
- 25 | ReplicaManager(下):副本管理器是如何管理副本的?
- 26 | MetadataCache:Broker 是怎么异步更新元数据缓存的?
- 27 | 消费者组元数据(上):消费者组都有哪些元数据?
- 28 | 消费者组元数据(下):Kafka 如何管理这些元数据?
- 29 | GroupMetadataManager:组元数据管理器是个什么东西?
- 类定义与字段
- 重要方法
- 总结
- 课后讨论
- 30 | GroupMetadataManager:位移主题保存的只是位移吗?
- 31 | GroupMetadataManager:查询位移时,不用读取位移主题?
- 32 | GroupCoordinator:在 Rebalance 中,Coordinator 如何处理成员入组?
- 33 | GroupCoordinator:在 Rebalance 中,如何进行组同步?
- 特别放送(一)| 经典的 Kafka 学习资料有哪些?
- 特别放送(三):我是怎么度过日常一天的?
- 特别放送(二)| 一篇文章带你了解参与开源社区的全部流程
- 特别放送(五) | Kafka 社区的重磅功能:移除 ZooKeeper 依赖
- 特别放送(四)| 20 道经典的 Kafka 面试题详解
- 期中测试 | 这些源码知识,你都掌握了吗?
- 期末测试 | 一套习题,测试你的掌握程度
- 结束语 | 源码学习,我们才刚上路呢
特别放送(三):我是怎么度过日常一天的?
今天,我们暂时抛开冗长的代码,轻松一下,我和你分享一个课程以外的话题——我是怎么度过日常的一天的。
当然了,这并不是一节说教课。也许,你看完之后,会有一种看 老干部 的既视感:每日在固定的时辰起床和睡觉,午后清茶一杯,再加上老旧钢笔留下的几抹笔迹,无论寒暑。
很多人说,自律是最顶级的自由。我并不敢轻言说我的这种生活就叫自律,但我的的确确乐在其中,不能自拔。我很享受这种规律的生活带给我的安全感和节奏感。我很感谢这样的日复一日,也感谢我自己。
子曰: 己所不欲,勿施于人。 但我认为, 己之所欲,亦勿施于人 。

每个人应该有属于自己的人生,过自己想要的生活。 我对这句话深以为然。因此,我告诫自己,今天的分享绝非是要向你推销某种生活方式。它就是一种经历、一段总结,希望你能从中获得一些灵感,得到一点启迪。我尽力保证把它写得生动有趣,不至于让你直接跳到晚上 11 点上床睡觉的那部分。毕竟,睡觉好像也没什么可写的,哈哈。
早餐时补充足够的蛋白质是高效工作的关键
When your dreams come alive you’re unstoppable. Take a shot, chase the sun, find the beautiful. 清晨 6:30,伴随着 Dream it possible 的音乐闹钟,我开启了新的一天。穿上衣服洗漱完毕后,开始吃早餐。
我建议你一定要好好对待早餐。有些人认为,早餐吃多了,上午容易困。在我看来,这是不成立的,因为即使你不吃早餐,上午也是会困的。 瞌睡与否取决于你要做的工作,与早餐无关 。
早餐的种类请尽量丰富一些,最起码要有一些肉类或蛋白质,因为对于我们这些脑力工作者来说,补充足够的蛋白质是维持上午高效脑力工作的基础。

吃过了早餐,时间大约来到了 7 点半。面对北京早高峰拥挤的车流,我已然放弃了开车去上班的念头。60 分钟的地铁时光不长不短,正好可以让我补个回笼觉。哦,不,是正好让我有足够的时间去学点别的东西。
绝大多数情况下,在我踏上地铁车厢的那一刻,我就习惯打开手机里的英语学习软件,来一个 10 分钟的考研单词速记。之后是个固定节目:听 3 集 EnglishPod,唤醒一下早晨还未彻底清醒的耳朵。待这些都做完之后,剩下的时间就比较随性了。大体上,我都是在 Kindle 中度过的。
我很喜欢看书,在地铁上,手拿着 Kindle,用食指滑屏翻书的动作会让我有种 自己是个知识分子 的感觉,虽然我觉得我本来就是。当然,我并不排斥纸质书。事实上,最近我在地铁上看得最多的就是一本名为《狄仁杰传》的纸质书。
平素里我到公司很早,一般在 8 点 40 左右。如果你是在国企或机关单位,那么请忽略这里的 很早 ,这是针对互联网行业而言的。我个人非常珍视早晨的这段时间,因为在这段时间内,我的工作效率是最高的。所以,无论在哪里工作,我都愿意很早到公司。
一般情况下,这么早到公司的人应该是很 孤单 的,毕竟,可能很多同事依然还在路上,离公司近的甚至还在床上。安静的氛围能够让我从地铁站的喧嚣中解脱出来,身心快速得到放松。此刻,有利于专心工作的客观条件均已形成,因而我会立即进入工作状态。
令人遗憾的是,对于工作,我本人尚未修炼出那种如痴如醉的专注状态。站如松、坐如钟似的钉在座位上好几个小时忙于工作,我暂时还做不到。幸好,世间有一种巨高效的工作方法: 番茄钟工作法 ,也就是每工作 25 分钟,再休息 5 分钟,然后开始新一轮的 25 分钟,如此循环往复。
现在,对于非会议类的任何工作,我都谨守番茄钟法则。这套工作理念再配以合适的 App,真是无往而不利,帮助我极大地提升了专注力和执行力,因此,我总能完成预定的工作目标。
高效的会议,是与会人都聚焦于核心议题,而不是进行发散讨论
由于职位的缘故,在一天当中,我经常要参加很多公司级的多人会议。即使是在没什么人来的 8、9 点钟,一两个这样的会议就可能填满本就已经非常短暂的上午时间了 。于是,研究高效的会议组织方式,就成了摆在我面前的重要课题。
根据平日的实践,我比较推崇 亚马逊会议模式 。这是亚马逊创始人杰夫·贝索斯发明的。它的最大特点是: 静默开场 。
什么叫静默开场呢?简单来说就是,在会议开始前,会议组织者要把即将讨论的主要议题及内容以文档的方式发给所有与会者。会议开始后,所有与会者仔细阅读这些议题和内容,这就是所谓的静默开场。
这通常会持续 20~30 分钟,在这段时间里,与会者针对讨论议题,实时给出评审意见,并通过文字回复的方式与其他与会者互动。得益于目前先进的多人在线文档编辑工具,亚马逊会议模式能够让所有与会者很好地聚焦会议议题,从而保证了在座所有人的注意力始终关注在核心内容上,而不是进行发散式讨论。
另外,开会结束后,一定要创建具有明确负责人的待办项。一个有意思的现象是,如果待办项不指定由谁来完成,那么,最后 倒霉的 就是那个会议组织者,谁让 ta 组织会议的呢?因此,在我们公司,4 人以上的会议结束后,必须要明确后续待办项以及相应的负责人。
如果每天的工作只是循规蹈矩、萧规曹随,又怎么能在芸芸众生之中脱颖而出呢?
不论是日常工作还是开会,中午一般都能很快地到来。经过一上午的饱满工作,我多半早已饥肠辘辘了。我个人是没有午睡习惯的,因此,在饱餐战饭之后,我通常会利用这段时间学点工作以外的东西,比如学习 Kafka 源码,一是为了换换脑子,二是充分利用这段时间去提高自己。
有人说,超越别人的时间是在工作的 8 小时之外,我深表赞同。如果每天的工作只是循规蹈矩、萧规曹随,我们又怎么能在芸芸众生之中脱颖而出呢?当然,这里有一句毒鸡汤给到你:纵然我们拼命努力,大概率我们也不会有多大成功。然而就像哈维尔的名言所说: 我们坚持一件事情,并不是因为这样做了会有效果,而是坚信,这样做是对的。
我很珍惜午后的这段闲暇时光。通常,我会泡上最喜欢的绿茶,拿出老旧钢笔和 A4 空白纸,翻出最近喜爱的技术文档或商业报告,一笔一划地记录下此刻的学习心得。
我一直认为自己不算是个聪明人,我发现,只有把要理解的知识写下来,我才会记得牢固。我也很喜欢这样的学习方式。书写记录的过程会诱发我对所学知识的思考,这也算是难得的学习收获了。另外,日复一日的书写,帮我练就了一手好字。有时候,我会觉得,这是比学习本身更大的成就。

很多决定哪有正确与否,我们要做的就是尽力使我们的决定变得正确
短暂的午休结束之后,繁忙而冗长的下午工作便开始了。
通常来说,我要一直忙到 6 点半左右。这中间充斥着各类会议,将原本整整齐齐的 4 个多小时切割得七零八落。不过,我想说的是,这才是工作本身的模样。坦率地说,之前我会因为没有整块的时间去做事而感到沮丧,现在每每想来,都觉得自己过于矫情。在战场上,哪有时间让你准备充分再去战斗的呢?
同理,我们在公司业务上快速做的每个决定,哪有什么正确与否,无一不是通过后续的努力奋斗让它们变得正确罢了。现在我非常感恩这种快节奏、碎片化的业务驱动型工作,因为它让我能够尽可能快速地做业务决策。
我个人不太喜欢制定详尽的计划之后再下场干活的按部就班的做事风格,尤其是在瞬息万变的互联网环境中。当下,市场压根没给业务决策人员深思熟虑的时间窗口。事儿是干出来的,路是蹚出来的,而不是做计划做出来的。
其实,技术也是这么个道理。想学什么技术,卷起袖子立马学就好了,不用去搞什么学习路线图,也不用花精力去思考什么捷径,更不用对这个决定患得患失。很多时候,我们都没有到拼理论拼方法的阶段,我们只需要比别人多努力一点点,就已经能够领先他们很多了。
吃过晚饭之后,我大致会复制中饭后的自主学习模式。
待时钟越过了 7 点半,我会重新投入到工作中。如果没有特别的事情需要加班,我会在晚上 8 点左右结束工作,收工回家。
与来时在地铁用 Kindle 读书不同,每天的归家路上,我通常会花一些时间反思下当天的言行。比如,一天当中哪些话说得不好,哪些事儿办得不美,哪些人未好好对待。虽远未及 每日三省吾身 的境界,但这的的确确是我的每日必修课。
可能因为是水瓶座的关系吧,我特别喜欢独处的时光。《百年孤独》里的那句话太令人认同了: 生命中曾经有过的所有喧嚣,都将用寂寞来偿还。 拥有对抗孤独的能力是一个人成熟的重要标志。我喜欢在独处的时光中提升自己的成熟度。
时钟拨到 22 点时,街道寂静,一天之中我最喜欢的 1 个小时到来了。我会在这一小时里面做很多种类的事情:研究技术、学习金融,当然还有专栏的写稿与录音。有的时候,我甚至什么都不做,只是打开手机的冥想软件,呆呆地想上许久……一小时倏然而逝,但我会期盼着它第二日的准时到达。
好了,终于要说到 23 点睡觉了。那我去睡了,我们下节课见,Zzzzz…
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论