Eureka源码解析——项目结构

Eureka源码解析

EurekaClient

  • com.netflix.appinfo Eureka应用配置文件信息

  • com.netflix.discovery EurekaClient注册与发现相关功能

    • EurekaClient 注册发现客户端接口
    • DiscoveryClient 注册发现客户端实现类
    • Guice 使用Google轻量级IoC依赖注入框架,避免与Spring冲突 Guice入门教程
    • converters Eureka 内部传输数据编解码转换器。支持XML和JSON的格式
    • provider 自定义的Jersey 请求和响应的序列化和反序列化实现
    • providers 实现 javax.inject.Provider 接口,设置 EurekaClientConfig (Eureka 客户端配置)的生成工厂 GoogleGuice入门介绍
    • shared EurekaClient 和 EurekaServer 注册发现相关的共享重用的代码
    • util 工具类
    • endpoint 未知

EurekaClientArchaius2

Archaius是Netflix开源的配置管理组件

EurekaClientJersey2

Jersey 是 JAX-RS(JSR311)开源参考实现,用于构建 RESTful WebService

Jersey基本使用

  • EurekaServer 使用 Jersey Server 创建 RESTful Server
  • EurekaClient 使用 Jersey Client 请求 Eureka-Server

EurekaCore

  • com.netflix.eureka 为 Eureka-Server 的功能实现
    • EurekaBootStrap EurekaServer启动类
    • cluster EurekaServer 集群数据复制相关
    • lease 应用注册后的租约管理( 注册 / 取消 / 续期 / 过期 )
    • resources 基于 Jersey Server 实现,相当于 Spring MVC 的控制层代码
    • transport基于com.netflix.discovery.shared.transport封装实现

EurekaResources

运维后台管理界面

EurekaServer

打war包:EurekaClient + EurekaCore + EurekaResources

EurekaServerGovernator

使用 Netflix Governator 管理 Eureka-Server 的生命周期——governator