二.图说Eureka源码(环境搭建)
前言
上一篇已经完成了Eureka的初步简介,这篇文章我们来研究Eureka源码环境的搭建
课程目标
目录
- 概述
- 源码环境搭建
- 入口类
1.概述
eureka源码不是直接由springcloud提供的,我们平时通过注解和使用的,都是在原有代码上进行了封装的。而原生的底层实现是有实现的。因此我们阅读源码的时候直接阅读下的eureka源码。
1.1.源码的阅读技巧
- 抓住核心流程,其他流程去猜测它的实现,后续去验证
- 通过画图去梳理,可以先绘制一个大图,然后逐步去完成其细节。
2.源码环境搭建
本博客以Eureka的,此处i建议使用版本,Eureka选择分支
2.1.环境配置
- gradle配置:eureka需要依赖gradle的环境配置。关于gradle的配置这里就不多说明了,自己网上百度下就好
- 源码下载
git clone https://github.com/Netflix/eureka.git
- 执行eureka目录下的文件,mac的执行
2.2.导入idea
使用版本导入,其他版本可能存在问题,导入idea后如下图,分为如下几个module

>结构图概述
- eureka-client:eureka的客户端,注册到Eureka上的一个服务,即我们通过完成标记的这些服务
- eureka-client-jersey2: jersey2是一个mvc框架,类似我们经常使用的Spring MVC,这里主要是通过jersey2来完成和之间服务的数据传输的
- eureka-core: eureka server包中引入的一个子module,该模块主要就是eureka server的一些处理,也即eureka的注册中心
- eureka-core-jersey2: 同eureka-client-jersey2,这里是中的一些mvc通信的组件
- eureka-examples: 一些测试案例,可以debug来完成服务的处理
- eureka-resources:一些资源管理,这里主要是eureka中的web页面资源,也即我们上一篇看到的eureka的页面,这里主要是一些jsp的资源
- eureka-server:该模块的gradle中引入了,以及,会将这几个组件打包成一个war。从这里也就可以看出,我们的eureka-server会同时作为一个client注册到其他服务器上。
3.入门分析
基于我们之前的知识,我们知道Eureka的启动顺序是 --> 启动并注册到 Eureka Server上 --> 服务之间完成调用。如图

- 入口类
那么我们先来了解下启动时,都做了哪些事情。先梳理Eureka Server的启动流程。Eureka server是一个jsp组成的项目,所以我们先研究下下的文件。
com.netflix.eureka.EurekaBootStrap
回忆下我们之前学习jsp的时候,项目的入口类就是,因此我们可以找到:该类即为的入口类。
- 主页
jsp/status.jsp

该页面即为我们上一篇看到的页面。
- filter
此处的一些filter,暂时先不管,后续再进行讲解。
requestAuthFilter
com.netflix.eureka.ServerRequestAuthFilter
rateLimitingFilter
com.netflix.eureka.RateLimitingFilter
gzipEncodingEnforcingFilter
com.netflix.eureka.GzipEncodingEnforcingFilter
本篇内容就到此为止,先对Eureka的结构有个大致的了解,然后下一节我们开始Eureka Server的启动流程。
关于
- 公众号
