如何创建一个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

相关文章
|
4月前
springCloud服务注册中心eureka-server搭建
springCloud服务注册中心eureka-server搭建
|
4月前
springCloud服务注册中心eureka-client搭建
springCloud服务注册中心eureka-client搭建
|
12月前
|
负载均衡 Java 对象存储
02SpringCloud服务的注册与发现(Eureka Server)
02SpringCloud服务的注册与发现(Eureka Server)
32 0
|
Java
SpringCloud源码剖析-Eureka Server的自动配置
这里和EureakClientAutoConfiguration差不多,都是由主启动类上的@SpringBootApplication标签中的@EnableAutoConfiguration启动自动配置,通过AutoConfigurationImportSelector来扫描classpath下的starter包中的自动配置类
51 0
|
存储 缓存 算法
八.SpringCloud源码剖析-Eureka Server初始化流程
上一章我们分析了一下EureakServer的自动配置,这章节我们来详细分析一下Eureak Server中的核心组件以及初始化流程
八.SpringCloud源码剖析-Eureka Server初始化流程
|
存储 缓存 API
九.SpringCloud源码剖析-Eureka Server服务注册流程
本片文章的目的是分析Eureka Server的注册流程,您可以结合《[Eureka Client服务注册](https://blog.csdn.net/u014494148/article/details/106907911)》更容易理解
九.SpringCloud源码剖析-Eureka Server服务注册流程
|
存储 缓存 调度
SpringCloud源码剖析-Eureka Server服务注册流程
ApplicationResource.addInstance看方法名就能推测出他是用来注册实例的方法,其中参数InstanceInfo 是客户端提交的注册信息,请求头中isReplicationd为true代表是从其他Eureka Server节点复制实例,如果是isReplication为false,代表是Eureka Client 注册的 在做了一些列参数判断之后,这里在调用PeerAwareInstanceRegistry的register注册服务,使用的是实现类:InstanceRegistry,这个类在之前有介绍过,就是Eureak Server用来实现服务注册,服务发现,服务续
86 0
SpringCloud源码剖析-Eureka Server服务注册流程
七.SpringCloud源码剖析-Eureka Server的自动配置
前面的章节我们针对于Eureak Client的初始化 ,服务注册 ,服务发现,服务续约,取消注册功能进行了分析,接下来我们围绕Eureka的核心功能对Server端进行分析,本章将会分析Eureka Server的启动过程。
七.SpringCloud源码剖析-Eureka Server的自动配置
|
存储 缓存 算法
SpringCloud源码剖析-Eureka Server初始化流程
Eureka服务端上下文对象,包含了初始化,关闭,获取服务配置,获取集群节点,获取服务注册器,获取服务信息管理器等方法,默认实现类是DefaultEurekaServerContext
100 0
|
API 微服务 容器
六.SpringCloud源码剖析-Eureka Client取消注册
取消注册(服务下线)指的是EureakClient正常关闭之前,微服务会主动向EurekaServer发送下线请求,EureakServer接收到请求从注册表中剔除下线的服务