? 2020.05.06 进入中科院工作,做elasticsearch开发。
? 2022.04.25?晚上十点收拾完东西,正式从中科院“毕业”(离职)。
? 2022.04.26 早上无缝衔接进入新公司办理入职。新公司连工卡都没有,直接刷脸进入。?
? 我实现了从使用elasticsearch开发搜索系统,到写elasticsearch源码的转变。以前是用es,现在是在es的基础上舔砖加瓦,去完善优化它。
谈谈我这两个月的真实感受
? 现在是2022.06.26,这两个月的时间都在适应新的环境,停更整整两个月了!我开始慢慢接收把自己的兴趣当做工作,慢慢的接收更长的工作时间,慢慢的接收较长的通勤时间,慢慢的接收新的工作相处模式。
? 一天全部时间干喜欢的事,是蛮幸福的一件事,但是真的感觉到了一点点疲惫,可能这是一个慢慢适应的过程。两个月了,八点多到家,做完饭,吃完快九点了,第二点八点多还有出门。我一下子不能接收全部时间都拿来搞自己本来的兴趣(elasticsearch)。但是两个月的不输出(写文章),让我感觉到很空虚,不安,不踏实。
? 不过现在好了,重操结业,我又回来了!我准备把之前的flag实现(两年的时间,把elasticsearch的核心部分的每一行代码都看一遍),除此之外,我还想做另外一件事情,在elasticsearch源码的学习过程中,因为没有太多资料,所以感觉学起来很难,主要是需要磨时间。有时候我觉得,以大家的智商,看一遍es源码应该也不难,但是大家做起来可能会比较浪费时间,因为看源码本身就是一个磨时间的事情。我相信大家都能看懂,只是没有时间罢了。为什么关于源码的部分,网上的学习资料很少?难道这真的是一件前不见古人后不见来者的事情吗?不见得,只不过是大家懒得分享罢了。
新的flag
? 我想做一件事,将elasticsearch源码作为我这两年深耕的方向。先自己把源码吃透了,然后去录制一些免费的讲解视频,分享出去。我希望有很多的人能够参与到elasticsearch 的开发中来。我愿意去做一个开拓者,去分享自己的成长经验,我愿意用一偏偏文章,来帮助大家一起熟悉es的源码。我有一个愿望,希望每个人都能在elastic源码中添加一个自己写的小功能。
? 以前我的志向是提升搜索引擎的搜索能力,提升响应速度。我有过两年的使用elasticsearch开发的经验,我有过elasticsearch优化的经历,同时我也带着很多的疑问开始学习elasticsearch源码。我觉得我比别人的优势就是,我带着一堆的问题在前进,我每学到一些内容,都能或多或少的解决一些的的疑问。这给我带来了很多刺激感。
跳槽到新的公司
? 先介绍一下我现在是做 elasticsearch引擎开发的,负责给elasticsearch添加一些新的功能,换句话说,是改elasticsearch源码。这就比较感谢我的组长,他说改源码是最好的熟悉源码的方式。的确是这样,源码你看半天觉得你懂了,你改改试试!一堆问题,一堆和你本来理解不一样的问题。源码其实还是有点晦涩的,主要是别人写的,我觉得这很正常,等你看一段时间,磨一段时间自然而然的就觉得容易了。
? 最近给elasticsearch添加了一个回收站的功能,删除的索引,并没有被物理删除,而是暂存在磁盘上。并且提供了恢复数据的API,查询回收站中索引的API。这个过程中,让我真的熟悉了es的删除索引的源码,我必须将它的处理过程完全吃透,这样才能在它的基础上去修改,和添加新的功能。这个练手的功能,我熟悉了很多:
- elasticsearch的源码包的结构,每个包里边都是一些什么功能
- 让我熟悉了elasticsearch的删除索引的逻辑
- 熟悉了elasticsearch的调用链路,一个rest请求进来以后是如何一步一步的执行并返回结果的。
- 因为是新加功能,所以要自定义API,这让我知道应该如何条件一个自己的API。
- 我添加了回收站墓碑,改了elasticsearch的集群元数据结构。
- 如何在elasticsearch源码中写单元测试。
- 如何在elasticsearch源码中写集成测试。
- 如何跑elasticsearch基准测试,性能测试。
? 目前已经完成了回收站新功能的开发,我会将这个开发过程分享出来。我是如何一步一步的去分解中任务并完成开发的,以及遇到了哪些问题,我又是如何一步一步解决的,解决这些问题都需要哪些es源码中的知识点。这些我在做开发的时候都有记录下来,明天下班我再整理一下,分享出来。
??
|