Eureka的核心类.

InstanceInfo

<instance>
<instanceId>CHEND-PC.sen5.sz:sw-user:8006</instanceId>
<hostName>192.168.150.24</hostName>
<app>SW-USER</app>
<ipAddr>192.168.150.24</ipAddr>
<status>UP</status>
<overriddenstatus>UNKNOWN</overriddenstatus>
<port enabled="true">8006</port>
<securePort enabled="false">443</securePort>
<countryId>1</countryId>
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
<leaseInfo>
<renewalIntervalInSecs>30</renewalIntervalInSecs>
<durationInSecs>90</durationInSecs>
<registrationTimestamp>1554119366405</registrationTimestamp>
<lastRenewalTimestamp>1554164316452</lastRenewalTimestamp>
<evictionTimestamp>0</evictionTimestamp>
<serviceUpTimestamp>1554119366406</serviceUpTimestamp>
</leaseInfo>
<metadata>
<management.port>8006</management.port>
<jmx.port>51543</jmx.port>
</metadata>
<homePageUrl>http://192.168.150.24:8006/</homePageUrl>
<statusPageUrl>http://192.168.150.24:8006/actuator/info</statusPageUrl>
<healthCheckUrl>http://192.168.150.24:8006/actuator/health</healthCheckUrl>
<vipAddress>sw-user</vipAddress>
<secureVipAddress>sw-user</secureVipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<lastUpdatedTimestamp>1554119366406</lastUpdatedTimestamp>
<lastDirtyTimestamp>1554119366397</lastDirtyTimestamp>
<actionType>ADDED</actionType>
</instance>
复制代码

字段含义

  • InstanceId:实例id
  • hostName:主机名字
  • app:应用名称
  • ipAddr:ip地址
  • status:实例的状态,例如UP,DOWN,STARTING,OUT_OF_SERVICE,UNKNOWN
  • overriddenstatus:外界需要强制副高的状态值,默认的使用UNKNOWN
  • port:端口号
  • securePort:https的端口号
  • countryId:国家ID(被废弃)
  • dataCenterInfo:数据中心的信息,Netflix或者Amazon或者MyOwn
  • leaseInfo
    • renewalIntervalInSecs:client端续约的间隔周期
    • durationInSecs:client段需要设定的租约的有效时长
    • registrationTimestamp:server端设置的该租约的第一次注册时间
    • lastRenewalTimestamp:server端设置的该租约的最后一次续约时间
    • evictionTimestamp:server端设置的该租约被剔除的时间
    • serviceUpTimestamp:server端设置的该服务实例标记的为UP的时
  • homePageUrl:应用实例的首页的url
  • statusPageUrl:应用实例的状态页url
  • healthCheckUrl:应用实例健康检查的url
  • secureVipAddress:https的虚拟ip地址
  • isCoordinatingDiscoveryServer:首先标志该discoveryServer是否是响应你请求的实例
  • lastUpdatedTimestamp:状态信息最后更新时间
  • lastDirtyTimestamp:实例信息最新的国企时间,在client端用于表示该实例信息是否与Eureka Server一致,在Server端则用于多个Eureka Server之间的信息同步
  • actionType:表示Eureka Server对该实例执行的操作,包括ADDED,MODIFIED,DELETED这三类

ServiceInstance

ServiceInstance是SpringCloud對service discovery的实例信息的抽象接口,约定了服务发现实例应用有哪些通用的信息,由于SpringCloud适配了Zookeeper,Consul,Netflix Eureka注册中心的,需要更加的抽象。 EurekaRegistration就是ServiceInstance接口的实现类。

public interface ServiceInstance {default String getInstanceId() {return null;}String getServiceId();String getHost();int getPort();boolean isSecure();URI getUri();Map<String, String> getMetadata();default String getScheme() {return null;}
}
复制代码

InstanceStatus

InstanceStatus用于表示服务实例的状态

public static enum InstanceStatus {UP,DOWN,STARTING,OUT_OF_SERVICE,UNKNOWN;private InstanceStatus() {}public static InstanceInfo.InstanceStatus toEnum(String s) {if (s != null) {try {return valueOf(s.toUpperCase());} catch (IllegalArgumentException var2) {InstanceInfo.logger.debug("illegal argument supplied to InstanceStatus.valueOf: {}, defaulting to {}", s, UNKNOWN);}}return UNKNOWN;}
}
复制代码

该类主要包括了 UP,DOWN,STARTING, OUT_OF_SERVICE,UNKNOWN几种状态,OUT_OF_SERVICE即停止接受请求,处于该服务状态的实例不会被路由到,经常用于升级部署服务的场景。

LeaseManager

接口定义了应用服务实例在服务中心的几个基本操作

public interface LeaseManager<T> {//用于注册服务实例信息void register(T var1, int var2, boolean var3);//用于删除实例信息boolean cancel(String var1, String var2, boolean var3);//用于与EurekaServer进行心跳操作,维持租约boolean renew(String var1, String var2, boolean var3);//server端的一个方法,用于剔除租约过期的服务实例信息void evict();
}
复制代码

LookupService

该接口定义了Eureka Client从服务中心获取服务实例的查询方法。这个接口主要Client端使用,其定义了获取所有应用信息,根据应用id获取所有服务实例,以及根据visualHostname使用round-robin方式获取下一个服务实例的方法。

public interface LookupService<T> {Application getApplication(String var1);Applications getApplications();List<InstanceInfo> getInstancesById(String var1);InstanceInfo getNextServerFromEureka(String var1, boolean var2);
}
复制代码

转载于:https://juejin.im/post/5c6cf6da5188256219176e6c

重新定义SpringCloud-SpringCloud Eureka笔记- Eureka的核心类(二)相关推荐

  1. SpringCloud基础概念学习笔记(Eureka、Ribbon、Feign、Zuul)

  2. SpringCloud微服务:Eureka组件之服务注册与发现

    一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...

  3. SpringCloud与微服务Ⅴ --- Eureka服务注册与发现

    一.Eureka是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构 ...

  4. SpringCloud H版之Eureka学习

    SpringCloud H版之Eureka学习 欢迎学习SpringCloud Netflix Eureka 什么是服务注册与发现 Eureka Server提供服务注册服务 EurekaClient ...

  5. SpringCloud微服务基础 Eureka、Feign、Ribbon、Zuul、Hystrix、配置中心的基础使用

    1.单点系统架构 传统项目架构 传统项目分为三层架构,将业务逻辑层.数据库访问层.控制层放入在一个项目中. 优点:适合于个人或者小团队开发,不适合大团队开发. 分布式项目架构 根据业务需求进行拆分成N ...

  6. SpringCloud注册与发现Eureka

    SpringCloud注册于发现Eureka服务学习: 简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中 ...

  7. Springcloud服务如何在Eureka安全优雅的下线

    Springcloud服务如何在Eureka安全优雅的下线 如果直接kill -9 Springcloud的服务,因为Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提 ...

  8. SpringCloud五大神兽之Eureka服务注册(三)——Eureka的自我保护

    一.ACID与CAP 传统ACID: A:atomicity   原子性 C:consistency    一致性 I:isolation    独立性 D:durability    持久性 目前流 ...

  9. springcloud五大神兽之Eureka介绍

    一.springcloud简介 1.0 什么是微服务? ① 业务角度 从业务角度分析,就是将整体项目(传统的一站式应用)按照业务拆分,将每个业务拆分为一个个独立的服务,彻底解除业务模块之间的耦合,每个 ...

最新文章

  1. python 内推_网易有道2017内推编程题 洗牌(python)
  2. python 3.0内置函数map、filter
  3. 通用用户权限管理系统组件V3.8功能改进说明 - 行政审批流程组件的改进
  4. typeahead有什么作用_typeahead使用配置参数。
  5. 在Keil中利用AStyle插件格式化代码
  6. Word没有到一行自动换行如何解决
  7. 522. 最长特殊序列 II
  8. java定时任务Quartz整理
  9. 10个快乐习惯来源于美国哈佛大学
  10. 【JS】点击文本复制到剪贴板实现
  11. matlab中的插值计算函数,MATLAB中的插值函数|全国大学生数学建模竞赛(CUMCM)|MATLAB技术论坛 - Powered by Discuz!...
  12. 利用java图形用户界面实现后台管理系统
  13. 基于Halcon学习的新能源车牌识别【三】
  14. 使用spilt截取文件名后缀时出现的问题
  15. coding码市管理项目
  16. 甲骨文数据库购买的价格(二)
  17. (CVPR 2020)3DSSD: Point-based 3D Single Stage Object Detector
  18. 华为nova10参数配置 华为nova10是5g手机吗
  19. 【工控老马】西门子PLC Siemens PLC TCP协议详解
  20. Propagation delay

热门文章

  1. C# 检测文件是否被其他进程占用
  2. 浅谈C中的指针和数组(一)
  3. form submit firefox not working
  4. 注册表收藏夹任你玩(4招)
  5. 程序终于实现跨机器运行——记VC++2005程序开发的一个常见问题
  6. 使用HTML5的canvas做一个会动的时钟
  7. 四、垃圾收集之垃圾收集算法
  8. php5.3中的safe_mod与magic_quotes_gpc
  9. ASP.NET中实现大结果集分页研讨 转
  10. C#生成CHM文件(汇总篇)