【一起学源码-微服务】Netflix Eureka 源码一:Netflix Eureka 源码初探,我们为什么要读源码?
前言
最近发现 网上好多自己的博客,很多朋友转载了文章却不加下 原载地址,本文欢迎转载一起学习,请在目录出加上原出处,感谢。转载来自:博客(一枝花算不算浪漫)
看了前面几篇文章的小伙伴知道,前几天在学习设计模式,所以标题也是用的【一起学xxx】,后面不出意外的话 都会使用这个标题了。
公司项目一直用的也是spring cloud,目前自己的水平仅仅也停留在使用阶段,所以最近用业余时间来学习下spring cloud相关组件。
文章打算采用连载的方式,欢迎大家批评指正。
项目结构
以下所有文章 源码皆基于spring-cloud Edgware.SR3 版本。对应Netflix eureka 1.7.x版本。
因为spring-cloud-eureka 底层对netflix eureka进行了封装,所以这里我们先看netflix eureka源码,后续再去读以下spring-cloud-eureka 对应的东西即可。
目录如下:
主要读取server、client、core等相关代码
源码地址: https://github.com/Netflix/eureka
这里建议fork到自己git仓库,因为自己添加的注释、修改等可以直接提交,方便自己日后阅读参考。
上帝视角,源码从何看起
首先我们要找到代码中的口子,从入口开始读起会方便的多。
如上图所示,这里 标注的一些地方都可能是一些代码的入口。
这里我们先打开web.xml文件,学过j2ee的同学都应该知道,web.xml中会配置工程的servlet、filter、listener、启动加载级别等信息。
EurekaBootStrap 配置的是一个listener,它会随着web应用的启动而启动。所以这里就可以理解为eureka-server 的入口程序,后续我也会围绕着此类来学习。
源码读取技巧
掐指算算,自己也读过一些源码了,那么源码该如何读取才会更好呢?
早些时候 我对于源码读起来是很绕的,经常会读的晕头转向,绕在各个方法中 最终不知所云。所以这里我有两点建议:
1、抓大放小
2、由粗到细
抓大放小,搞清楚大的流程、架构以及核心的一些实现的机制和细节。不要沉迷于所有的细节。
由粗到细,可以先整体过一遍代码流程,然后再一点点精度。
点题
到底我们为什么读代码?
这个优点多了去吧?
1、深入源码 有助于项目中遇到问题 快速解决
2、方便二次开发,基于自己需求定制化开发
3、装X
哈哈 最后一个是自己YY的,大家不必在意,好处我就不说了。
下一讲开始从eureka-server看起,搞起来搞起来
申明
本文章首发自本人博客:https://www.cnblogs.com/wang-meng 和公众号:壹枝花算不算浪漫,如若转载请标明来源!
感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫