zoukankan      html  css  js  c++  java
  • Spring-cloud & Netflix 源码解析:Eureka 服务注册发现接口 ****

    http://www.idouba.net/spring-cloud-source-eureka-client-api/?utm_source=tuicool&utm_medium=referral

    ***************************

     先关注下netflix eureka server 原生提供的接口。https://github.com/Netflix/eureka/wiki/Eureka-REST-operations 这是对非java的服务使用eureka时可以使用的rest接口。对于java应用,直接使用java的接口就可以

    Netxflix 提供的主要操作定义在com.netflix.discovery.EurekaClient中。主要操作有:

    eurekaclient_outline

    其实现类是 com.netflix.discovery.DiscoveryClient。

    Spring cloud中对其进行了封装,定义在org.springframework.cloud.client.discovery.DiscoveryClient中,

    spring_cloud_eureka_client

    可以看到比netflix原生的接口简单了很多,其实现类是org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient,里面所有的操作都是对netflix 原生的接口的封装,可以认为这是eureka 客户端需要向外提供的功能。

    主要提供的服务如下:

    1. 获取服务名为serviceId的所有服务实例。实现就是调用netflix的eurekaClient来获取。

    2. 获取本地发服务实例。解析EurekaInstanceConfig类型的服务实例配置,是自己当前服务的配置,本来这个对象就是在client中要注册到服务端的。

    3. 获取所有的服务。不同于netflix的的eurekaClient需要得到一个Applications的复杂对象,只是得到用户关心的服务名即可。

    spring cloud 前面接口中涉及的主要数据结构是ServiceInstance

    serviceInstance_outline

    其实现类org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient.EurekaServiceInstance,定义在spring-cloud-netflix-eureka-client 包中,是EurekaDiscoveryClient的一个内部静态类,可以看到是对netflix原生的com.netflix.appinfo.InstanceInfo的一种封装。

    看到实现的接口 org.springframework.cloud.client.ServiceInstance,定义在spring-cloud-commons中。也体现了spring clound的一种设计哲学,在common中只是规定(定义)行为,而实现在其他包中。

    org.springframework.cloud.client.discovery.DiscoveryClient 也是定义在common中,而其实现类org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient定义在spring-cloud-netflix-eureka-client中,即spring cloud需要有服务发现功能,eureka只是其中的一种选择。

    完。

    原创文章。为了维护文章的版本一致、最新、可追溯,转载请注明: 转载自idouba

    本文链接地址: Netflix源码解析之Eureka:Eureka 服务注册发现接口

  • 相关阅读:
    简单的MVC小应用
    jsp四大指令元素,三大脚本元素,八大动作元素
    servlet session管理的四种方式 --隐藏表单
    servlet session管理的四种方式--一 url重写
    创建servlet三种方式(韩顺平老师课程)
    python函数
    tcpprobe ——监听TCP信息的内核模块
    Popen的方法
    Python中执行系统命令常见的几种方法
    > /dev/null 2>&1 含义
  • 原文地址:https://www.cnblogs.com/zhao1949/p/6256431.html
Copyright © 2011-2022 走看看