前言

最近发现 网上好多自己的博客,很多朋友转载了文章却不加下 原载地址,本文欢迎转载一起学习,请在目录出加上原出处,感谢。转载来自:博客(一枝花算不算浪漫)

看了前面几篇文章的小伙伴知道,前几天在学习设计模式,所以标题也是用的【一起学xxx】,后面不出意外的话 都会使用这个标题了。

公司项目一直用的也是spring cloud,目前自己的水平仅仅也停留在使用阶段,所以最近用业余时间来学习下spring cloud相关组件。

文章打算采用连载的方式,欢迎大家批评指正。

image.png

项目结构

以下所有文章 源码皆基于spring-cloud Edgware.SR3 版本。对应Netflix eureka 1.7.x版本。

因为spring-cloud-eureka 底层对netflix eureka进行了封装,所以这里我们先看netflix eureka源码,后续再去读以下spring-cloud-eureka 对应的东西即可。

目录如下:

image.png

主要读取server、client、core等相关代码
源码地址: https://github.com/Netflix/eureka
这里建议fork到自己git仓库,因为自己添加的注释、修改等可以直接提交,方便自己日后阅读参考。

上帝视角,源码从何看起

首先我们要找到代码中的口子,从入口开始读起会方便的多。
image.png

如上图所示,这里 标注的一些地方都可能是一些代码的入口。
这里我们先打开web.xml文件,学过j2ee的同学都应该知道,web.xml中会配置工程的servlet、filter、listener、启动加载级别等信息。

image.png

EurekaBootStrap 配置的是一个listener,它会随着web应用的启动而启动。所以这里就可以理解为eureka-server 的入口程序,后续我也会围绕着此类来学习。

源码读取技巧

掐指算算,自己也读过一些源码了,那么源码该如何读取才会更好呢?

早些时候 我对于源码读起来是很绕的,经常会读的晕头转向,绕在各个方法中 最终不知所云。所以这里我有两点建议:

1、抓大放小
2、由粗到细

抓大放小,搞清楚大的流程、架构以及核心的一些实现的机制和细节。不要沉迷于所有的细节。
由粗到细,可以先整体过一遍代码流程,然后再一点点精度。

点题

到底我们为什么读代码?

这个优点多了去吧?

1、深入源码 有助于项目中遇到问题 快速解决
2、方便二次开发,基于自己需求定制化开发
3、装X

哈哈 最后一个是自己YY的,大家不必在意,好处我就不说了。
下一讲开始从eureka-server看起,搞起来搞起来

image.png

申明

本文章首发自本人博客:https://www.cnblogs.com/wang-meng 和公众号:壹枝花算不算浪漫,如若转载请标明来源!

感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫

22.jpg

版权声明:本文为wang-meng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wang-meng/p/12081910.html