• 【一起学源码-微服务】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

  • 相关阅读:
    POJ 2240 Arbitrage spfa 判正环
    POJ 3259 Wormholes spfa 判负环
    POJ1680 Currency Exchange SPFA判正环
    HDU5649 DZY Loves Sorting 线段树
    HDU 5648 DZY Loves Math 暴力打表
    HDU5647 DZY Loves Connecting 树形DP
    CDOJ 1071 秋实大哥下棋 线段树
    HDU5046 Airport dancing links 重复覆盖+二分
    HDU 3335 Divisibility dancing links 重复覆盖
    FZU1686 神龙的难题 dancing links 重复覆盖
  • 原文地址:https://www.cnblogs.com/wang-meng/p/12081910.html
Copyright © 2020-2023  润新知