# spring-cloud-eureka-source **Repository Path**: automannn/spring-cloud-eureka-source ## Basic Information - **Project Name**: spring-cloud-eureka-source - **Description**: springCloudNetflixEureka服务注册发现源码,用于学习; - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-02-05 - **Last Updated**: 2022-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 解读概要: 1. eureka的源码部分,具有两个模块,一个为client模块,一个为core模块。 eureka是基于restful接口提供服务的,restful接口的实现是由jersey提供。就接口而言,core模块主要提供了服务注册发现等接口,位于resources目录下(与springCloud结合后,通过扫描包自动注册,由springCloudNetflixEurekaServer模块的类`EurekaServerAutoConfiguration`实现,此处的jersey的服务是以filter方式提供). client模块,封装了客户端的接口,包括服务注册,心跳等,也是通过jersey调用,从这个层面来讲,所有的eureka都是客户端(服务端也是客户端,但客户端不一定是客户端)。 2. spring-cloud-eureka也分为两个模块,分别是client和server.其中,spring-cloud-eureka-server依赖于spring-cloud-eureka-client. spring-cloud-eureka-server生效的核心条件是 @EnableEurekaServer,该注解使得 `EurekaServerAutoConfiguration`,注意,该类的实例化,需要依赖 `eurekaClient`的实现类。spring-cloud-eureka-client 提供了 `eurekaClient`的实现类: `CloudEurekaClient`,该类的bean由 `EurekaClientAutoConfiguration` 提供,该配置在springCloud环境默认启用 3. eureka注册中心的本质是 一个 `ConcurrentHashMap>`,由 `AbstractInstanceRegistry`提供实现。其中, `InstanceInfo`包含 实例id,appName,ipAddr,port等应用关键信息。