如何创建一个Eureka Client?(上)

简介: 在上篇中已经讲了 Eureka Server 的配置文件读取。接下来讲讲 Eureka Client 的创建。每一个 eureka server 都是一个 eureka client,是用来和其他 eureka-server 节点注册和通信的。

EurekaInstanceConfig & EurekaClientConfig

Instance 是实例的意思, EurekaInstanceConfig 就是 eureka client 的配置文件中的服务实例信息。

60.png

EurekaInstanceConfig 就是将 eureka-client.properties 文件中的服务实例信息加载到 ConfigManager 中,然后基于 EurekaInstanceConfig 对外暴露接口,并且提供配置项的默认值。

61.jpg

ApplicationInfoManager,包含了服务实例的信息、配置,作为服务实例管理的一个组件,由 EurekaInstanceConfig 和 InstanceInfo 构建完成,InstanceInfo 的创建是在 new EurekaConfigBasedInstanceInfoProvider(instanceConfig).get() 中,用了构造器模式 LeaseInfo.Builder.newBuilder() 构造了一个复杂的代表一个服务实例的 InstanceInfo 对象。核心思想就是在 EurekaInstanceConfig 中读取各种实例相关的配置信息,再构造了一些其他的对象,最终完成 InstanceInfo 对象的构建。

62.png



DefaultEurekaClientConfig 就是和 DefaultEurekaServerConfig 一样,读取 erueka-client.properties 配置文件的内容。具体方法在 com.netflix.discovery.internal.util.initConfig() 中。最后都是交给 ConfigurationManager 管理。

EurekaInstanceConfig 和 EurekaClientConfig 虽然都是读取的 erueka-client.propeties ,但是读取的内容是不一样的。

EurekaInstanceConfig 接口

63.jpg


EurekaClientConfig 接口

64.jpg

DiscoveryClient

DiscoveryClient 是创建 Erueka Client 的类,由 ApplicationInfoManager 和 EurekaClientConfig 组成。


65.png

DiscoveryClient 代码很长。

  1. appPathIdentifier,服务实例的标识符,  appName,代表了一个服务名称,但是一个服务可能部署多台机器,每台机器上部署的就是一个服务实例,如:serviceABC/001

66.png

相关文章
|
7月前
springCloud服务注册中心eureka-client搭建
springCloud服务注册中心eureka-client搭建
|
缓存 Java API
二.SpringCloud源码剖析-Eureka Client 初始化过程
有了解过SpringBoot自动配置的同学应该知道,在主程序启动类上我们会贴一个 @SpringBootApplication 注解,该注解里面包含了一个 @EnableAutoConfiguration 注解,该注解的作用是开启SpringBoot的自动配置,即:在 @EnableAutoConfiguration 标签中使用了一个 AutoConfigurationImportSelector 选择器,该选择器会去扫描当前classpath环境中的 META-INF/spring.factories 文件中的自动配置类,然后完成相关的自动配置 ———————————————— 版权声明:本
二.SpringCloud源码剖析-Eureka Client 初始化过程
|
存储 缓存 算法
八.SpringCloud源码剖析-Eureka Server初始化流程
上一章我们分析了一下EureakServer的自动配置,这章节我们来详细分析一下Eureak Server中的核心组件以及初始化流程
八.SpringCloud源码剖析-Eureka Server初始化流程
|
缓存 Java API
SpringCloud源码剖析-Eureka Client 初始化过程
在spring-cloud-commons-2.0.1.RELEASE.jar SpringCloud公共包中/META-INF/spring.factories配置文件中有AutoServiceRegistrationAutoConfiguration自动配置类,当应用启动SpringBoot会扫描到该自动配置类,然后注册到Spring容器
97 0
|
存储 缓存 算法
SpringCloud源码剖析-Eureka Server初始化流程
Eureka服务端上下文对象,包含了初始化,关闭,获取服务配置,获取集群节点,获取服务注册器,获取服务信息管理器等方法,默认实现类是DefaultEurekaServerContext
114 0
|
微服务 容器
SpringCloud源码剖析-Eureka Client取消注册
取消注册(服务下线)指的是EureakClient正常关闭之前,微服务会主动向EurekaServer发送下线请求,EureakServer接收到请求从注册表中剔除下线的服务 DiscoveryClient.shutdown 方法 DiscoveryClient是服务发现最核心的实现,DiscoveryClient通过shutdown 方法取消服务注册,方法上通过@PreDestroy标记该方法是实例的销毁方法,当应用关闭,容器正常关闭,Bean的销毁方法执行,
291 0
|
API 微服务 容器
六.SpringCloud源码剖析-Eureka Client取消注册
取消注册(服务下线)指的是EureakClient正常关闭之前,微服务会主动向EurekaServer发送下线请求,EureakServer接收到请求从注册表中剔除下线的服务
eureka.client常用配置
eureka.client常用配置
77 0
eureka.client常用配置
|
存储 缓存 Nacos
05篇 Nacos Client服务订阅之事件机制剖析
05篇 Nacos Client服务订阅之事件机制剖析
571 0
05篇 Nacos Client服务订阅之事件机制剖析
|
缓存 Nacos 文件存储
03篇 Nacos Client服务发现源码分析
03篇 Nacos Client服务发现源码分析
385 0
03篇 Nacos Client服务发现源码分析