美文网首页
SpringCloud Client源码解析

SpringCloud Client源码解析

作者: slowwalkerlcr | 来源:发表于2020-06-19 22:09 被阅读0次

    初始化CloudEurekaClient

    类图关系
    image.png

    说明:黄色类为SpringCloud类,绿色为NetFlix Eureka相关类

    1. 黄色类为SpringCLoud相关类,绿色类为NetFlix Eureka相关类
    2. DiscoveryLient(SrpingCLoud)封装了发现服务的常用抽象方法,通过类图关系可以看到它的子类EurekaDisvoveryCLientSpringCLoud类)通过组合 EurekaCLient(NetFlix)的方式,也就是通过(适配器模式)来整合服务发现的功能,DiscoveryLient可以看到下面的初始化流程中已经注入到Spring容器中,供使用
    3. CloudEurekaCclient(SpringCloud类)在SpringBoot自动注入过程通过super DisCoverClient的构造方法去实现EurekaClient的服务注册、定时从注册中心拉取服务、定时服务续约、定时更新客户端来达到客户端的服务治理的功能
    SpringCLoud客户端相关Bean 自动注入
    1. SpringCLoud Eureka Client工程里 里面添加Spring-cloud-starter-eureka pom依赖
    image.png
    1. Spring-cloud-starter-eureka里依赖了spring-cloud-netflix-eureka-client

      image.png
    2. SpringCloud eurekaClient自动注入

    image.png
    1. EurekaDiscoveryClient自动注入也就是上面类图EurekaDiscoveryClientSpringCloud类),这里注入到Spring容器后,就可以在Spring中直接拿来使用了
      image.png
    1. CloudEurekaClient的初始化

      • CloudEurekaClient自动注入通过new CloudEurekaCLient 构造方法进入到下面的服务注册、定时续约等功能
      image.png
      • CloudEurekaClient通过super DiscoveryClient构造方法进入服务注册、定时续约等功能

        image.png
      • com.netflix.discovery.DiscoveryClient#DiscoveryClient()构造方法详细逻辑

        image.png

    其它注意点

    其它重点关注类

    1. InstanceInfo
    就代表一个Eureka Client。里面包含了各个实例的详细属性信息
     lastDirtyTimestamp:记录当前intance在Client端的最后修改时间。
     lastUpdatedTimestamp:记录当前instance在Server端的最后修改时间。
     status:当前instance的存活状态(服务状态)
     overriddenStatus:可覆盖状态,是用户修改instance时使用的状态。
    
    1. Application
    这里代表一个微服务(比如订单服务 Order-Service),里面包含了多个订单服务实例(192.168.0.1:8080,192.168.0.2:8080,192.168.0.3:8080等多个实例)
    
    instancesMap的key为intanceId,value为对应的intanceInfo
    

    Application类结构


    image.png
    1. Applications
    其实就是从Eureka Server下载的注册表保存在Client端的形式。我们简称“客户端注册表”
    appNameApplicationMap的key为微服务名称,value为对应上面的的Application。
    

    Applications类结构


    image.png
    1. Applications包含了Application(一个微服务)集合,Application包含了InstanceInfo(一个微服务下的服务实例)集合
    2. EurekaClientConfigBeanHecom
    org.springframework.cloud.netflix.eureka.EurekaClientConfigBean和com.netflix.discovery.EurekaClientConfig 就是客户端相关的配置信息映射类
    
    1. EurekaClientAutoConfiguration SpringCloud Client客户端Bean自动注入的起始配置类
    EurekaClientAutoConfiguration 也就是在org\springframework\cloud\spring-cloud-netflix-eureka-client的spring.factories下面
    

    其它基础知识

    Jersey框架
    JAX-RS
    Resource
    
    Jeysey框架相当于简单版的SpringMVC,只是SpringMVC多了ModelAndView试图解析等功能,Jeysey只处理请求,通过请求方式(PUT、DELETE)和接口格式(JSON\XML)来处理客户端到服务端的请求,Eureka中客户端就是通过Jeysey来请求Eureka注册中心的服务注册、服务续约、服务下架、拉取服务等接口来实现的
    

    相关文章

      网友评论

          本文标题:SpringCloud Client源码解析

          本文链接:https://www.haomeiwen.com/subject/onabxktx.html