重新定义SpringCloud-SpringCloud Eureka笔记- Eureka的核心类(二)
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的核心类(二)相关推荐
- SpringCloud基础概念学习笔记(Eureka、Ribbon、Feign、Zuul)
- SpringCloud微服务:Eureka组件之服务注册与发现
一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...
- SpringCloud与微服务Ⅴ --- Eureka服务注册与发现
一.Eureka是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构 ...
- SpringCloud H版之Eureka学习
SpringCloud H版之Eureka学习 欢迎学习SpringCloud Netflix Eureka 什么是服务注册与发现 Eureka Server提供服务注册服务 EurekaClient ...
- SpringCloud微服务基础 Eureka、Feign、Ribbon、Zuul、Hystrix、配置中心的基础使用
1.单点系统架构 传统项目架构 传统项目分为三层架构,将业务逻辑层.数据库访问层.控制层放入在一个项目中. 优点:适合于个人或者小团队开发,不适合大团队开发. 分布式项目架构 根据业务需求进行拆分成N ...
- SpringCloud注册与发现Eureka
SpringCloud注册于发现Eureka服务学习: 简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中 ...
- Springcloud服务如何在Eureka安全优雅的下线
Springcloud服务如何在Eureka安全优雅的下线 如果直接kill -9 Springcloud的服务,因为Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提 ...
- SpringCloud五大神兽之Eureka服务注册(三)——Eureka的自我保护
一.ACID与CAP 传统ACID: A:atomicity 原子性 C:consistency 一致性 I:isolation 独立性 D:durability 持久性 目前流 ...
- springcloud五大神兽之Eureka介绍
一.springcloud简介 1.0 什么是微服务? ① 业务角度 从业务角度分析,就是将整体项目(传统的一站式应用)按照业务拆分,将每个业务拆分为一个个独立的服务,彻底解除业务模块之间的耦合,每个 ...
最新文章
- python 内推_网易有道2017内推编程题 洗牌(python)
- python 3.0内置函数map、filter
- 通用用户权限管理系统组件V3.8功能改进说明 - 行政审批流程组件的改进
- typeahead有什么作用_typeahead使用配置参数。
- 在Keil中利用AStyle插件格式化代码
- Word没有到一行自动换行如何解决
- 522. 最长特殊序列 II
- java定时任务Quartz整理
- 10个快乐习惯来源于美国哈佛大学
- 【JS】点击文本复制到剪贴板实现
- matlab中的插值计算函数,MATLAB中的插值函数|全国大学生数学建模竞赛(CUMCM)|MATLAB技术论坛 - Powered by Discuz!...
- 利用java图形用户界面实现后台管理系统
- 基于Halcon学习的新能源车牌识别【三】
- 使用spilt截取文件名后缀时出现的问题
- coding码市管理项目
- 甲骨文数据库购买的价格(二)
- (CVPR 2020)3DSSD: Point-based 3D Single Stage Object Detector
- 华为nova10参数配置 华为nova10是5g手机吗
- 【工控老马】西门子PLC Siemens PLC TCP协议详解
- Propagation delay