作者
渡码,阿里巴巴码农,公众号:渡码 作者,专注大数据开发、数据分析和Python技术。
关注公众号 渡码 回复关键字 manis,可获取电子书、各章节和完整源代码,并且可加入读者群一起交流问题。
简介
19年上半年,我阅读了Hadoop RPC模块的源代码,读完后发现这个模块设计的非常好,与其他模块无耦合,完全可以独立出来当成一个独立的框架。为了总结学到的编程知识,同时也为了学习Apache顶级开源项目的代码是如何编写的,我便把它做成了电子书,共350页,从写代码到做成电子书共花了6个月的时间。本来想做成付费专栏赚点小钱,并且已经到了上架阶段了,但后来决定把它免费开放出来,让更多的人能够学习到优秀的实战项目。
当然我们这本书并不是源码分析类教程,而是强调动手能力。在这里我会带着大家按照 Hadoop RPC 源码从 0 到 1 完整敲一遍,代码量在 4600 行左右。为了让不熟悉 Hadoop 或 RPC 的朋友也能够学习,我将 Hadoop RPC 稍微做了一点改造,赋予了新的业务含义,也有自己的名字,叫 Manis。Mnias 源码相比于 Hadoop RPC源码还原度为90%。为什么不是100%呢?一方面为了突出重点,我会把不太重要、不是很核心的技术舍弃掉。另一方面为了符合新的业务定义,我会做一些改进,而不是照搬完全 Hadoop RPC。
虽然这个项目是实现 RPC 功能,但我觉得我们关注的重点不应该过多地放在 RPC 本身,而应该重点学习编写 RPC 过程中所涉及的系统设计、面向对象设计思想和原则、工程/代码规范、客户端开发、服务端开发、网络编程、多线程、并发编程、设计模式、异常处理等核心知识,可以说是麻雀虽小五脏俱全。尤其是对于刚学习 Java 还没有接触线上实战项目的朋友,这是一次很好的练兵机会。
学习开源项目的一个优势在于它是经过线上检验的,Hadoop集群规模最大达到上万台服务端,足以证明它的 RPC