之前工作读源码机会较少,有也是一小部分源码阅读。近段时间工作任务不重,接触的东西比较多,同时对他们的实现感兴趣。因为发现一个规律,分布式项目,高并发高可用理念深入人心。而实现这理念的框架都包含很多共性的思想,现简单总结如下:
1.心跳(健康)检测机制 集群中必须实现
2.选举机制 集群
3.代理机制 aop核心
4.备份机制 (同步 异步) fastdfs 备份策略,
5.重发机制 activemq kafka spring-retry
6.信息确认 http三次握手/mq AcknowledgeMode/tcc(try-confirm-cancel)
7.运行模式 持久化机制 消息框架都存在。
8.信息分发策略 (主备,轮询,权重。。。)nginx mq
9.contextHold(待补充)
看到这些,一定明白了,有针对性阅读源码,你就能明白他们的实现方案,明白实现方案,就能体会现有框架的痛点和应用边界 ,这样除了问题就能优雅的解决,你也就有了超过他人的溢价能力。
问题来了,读懂源码不是个简单的事,我目前的方法是:
1.下载框架相应的 java-doc.jar 可以配合官网文档
2.模块结构图抽取,包下类关系图(这些可以从百度上查找,如果没有,可以使用powerdesign 从java源码中逆向工程,得到类关系图)
3.权威著作(最好英文,因为你能读到更多的东西) 1本
4.阅读souce.jar
前三部在于抽取出框架提纲,Java-doc这个会非常明晰地展示出类接口方法的具体说明(好的框架往往 注释 写得也非常棒)。
不过,阅读源码对于英文能力要求较高。