springcloud 之 eureka 源码解析(1)-Eureka 入门

Eureka 入门

1、Eureka功能、原理了解

1.1 Eureka 基本介绍

Eureka是Netflix开源的一款提供服务注册和发现的产品 github地址为 https://github.com/Netflix/eureka 注册中心是分布式开发的核心组件之一,而eureka是spring cloud推荐的注册中心实现

1.2 Eureka 功能

1、Eureka主要实现了服务的注册与发现。 2、因为项目使用微服务的话,肯定会拆分为很多的服务,有了注册中心,就可以让让注册中心来管理服务的上下线、以及服务故障的监控。 3、有了注册中心后,其他服务调用的时候也不用关心有多个实例我怎么去调用,后面我们就知道我们在 Feign中直接写上实例名,就可以帮我们自动的去调用相应的服务实例。当然内部是有负载均衡的

2、Eureka 源码搭建

2.1 下载源码

  1. 在本地打开命令行客户端(Windows:cmd/git bash-> 推荐使用 git bash,更好友一些), 执行 git clone https://github.com/Netflix/eureka
  2. 因为 Eureka 是 gradle 构建的,所以你打开项目之前先确保自己安装了 gradle
  3. 然后用 idea 打开 eureka 的项目,打开之后你可以切换分支,我这里就打开的是1.7.x 的版本来分析

2.2 环境变量设置、构建

1、gradle 配置环境变量

2、gradle 在 idea 中的设置

3、然后 gradle clean build 即可

4、构建后的样子

3、Eureka 目录结构

3.1 codequality

代码质量检测的,下面就一个文件 checkstyle.xml

3.2 eureka-client、eureka-client-archaius2、eureka-client-jersey2

eureka-client 主要是客户端相关的代码

eureka-client-jersey2 这个主要是一个restful 实现的 webservice 接口

看下图就可以知道这个类中封装了 client 的很多方法,用于向服务端请求。

3.3 eureka-core、eureka-core-jersey2

这 2 个项目主要是服务端相关的代码。
先大概看一下 core 的类结构,后面源码分析的时候我们会去看更多的类

3.4 eureka-examples

这个目录下主要是 eureka 相关的一些例子,测试类啥的

3.5 eureka-resource

这个主要是 eureka 控制台相关的一些资源文件。
下面图中可以看出就是一些 js、css、jsp 页面文件

3.6 eureka-server、eureka-server-governator

主要是服务入口类,配置一些启动类、过滤器等

3.7 eureka-test-utils

这个主要是 test 相关的工具类
经验分享 程序员 微信小程序 职场和发展