前言
最近关于微服务的话题很火热,本系列文章主要是从源码去解读Eureka。
PS:
- 什么是微服务,本文不做具体介绍,可以自行上网查找。
- 如果没有使用过SpringCloud,博主建议先自行搭建一套服务之后,再进行源码的解读。
- 该系列文章很枯燥也很耗时,请合理安排时间。
- 博主是参考了芋艿大佬的路线进行源码解读的,其中有部分问题借鉴了芋艿大佬的解读。点击访问芋艿大佬的博客
Eureka项目结构简介
eureka-client
com.netflix.appinfo
: Eureka-Client 的应用配置com.netflix.discovery
: Eureka-Client 的注册和发现功能
eureka-client-archaius2
Archaius是 Netflix 开源的配置管理组件。Eureka 使用 1.x 版本,2.x 版本仍然在开发中,2.x只兼容jdk1.8以上的版本。
eureka-client-jersey2
Jersey 框架实现Eureka的 RESTful HTTP接口。Eureka 使用 1.x 版本,2.x 版本由社区实现。
eureka-core
com.netflix.eureka.aws
: 与AWS (Amazon Web Services) 相关,该系列文章暂不涉及AWS的分析com.netflix.eureka.cluster
: 与peer节点复制(replication)相关com.netflix.eureka.lease
: 租约,用来控制注册信息的生命周期(注册、续约、剔除)com.netflix.eureka.registry
: 存储、查询服务注册信息com.netflix.eureka.resources
: RESTful中的”R”,即资源。相当于SpringMVC中的Controllercom.netflix.eureka.transport
: 发送HTTP请求的客户端,如发送心跳com.netflix.eureka.util
: 相关工具包
eureka-core-jersey2
Jersey 框架实现Eureka的 RESTful HTTP接口。Eureka 使用 1.x 版本,2.x 版本由社区实现。
eureka-examples
Eureka-Client 使用例子。
eureka-resources
通过 JSP 实现 Eureka-Server 的运维后台界面。
eureka-server
由 eureka-client
+ eureka-core
+ eureka-resources
打包成 Eureka-Server 的war包。
eureka-server-governator
使用 Netflix Governator (Google Guice的扩展类库,提供了Classpath扫描及自动绑定、生命周期管理、成员属性验证等功能)管理 Eureka-Server 的生命周期。目前该模块正在测试阶段。
eureka-test-utils
Eureka 单元测试工具类。