zoukankan      html  css  js  c++  java
  • 【一起学源码-微服务】Netflix Eureka 源码一:Netflix Eureka 源码初探,我们为什么要读源码?

    前言

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

    看了前面几篇文章的小伙伴知道,前几天在学习设计模式,所以标题也是用的【一起学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

  • 相关阅读:
    【关系抽取-mre-in-one-pass】加载数据(一)
    google colab上如何下载bert相关模型
    【关系抽取-R-BERT】定义训练和验证循环
    【关系抽取-R-BERT】模型结构
    【关系抽取-R-BERT】加载数据集
    【python刷题】关于一个序列的入栈出栈有多少种方式相关
    【python刷题】二维数组的旋转
    transformer相关变体
    数据结构与算法:树
    数据结构与算法:哈希表
  • 原文地址:https://www.cnblogs.com/wang-meng/p/12081910.html
Copyright © 2011-2022 走看看