自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 spring cloud:eureka源码之我见(十)eureka server集群机制

一、注册表同步及高可用eureka server集群之间数据同步以及高可用都是通过这个机制实现的,现在我们来剖析一下这个机制的原理。(1)我们知道,eureka server的初始化是在eureka-core的EurekaBootStrap中完成的,在其中完成了PeerEurekaNodes的初始化。且在接下来的代码中会调用PeerEurekaNodes的start方法。在该方法中,eureka server会解析配置文件中其他eureka server的url,并且基于url地址构造PeerEur

2021-08-12 23:30:08 228

原创 spring cloud:eureka源码之我见(九)自我保护机制

假如说,20个服务实例,结果在1分钟之内ASD,只有8个服务实例

2021-08-03 21:11:13 158

原创 spring cloud:eureka源码之我见(八)服务实例故障自动感知与服务实例自动摘除机制

很多时候,服务实例并不是主动放delete请求下线的,而是宕机或者其他情况,并不会去通知注册中心(eureka server)。eureka server是靠着心跳(续约)实现服务实例故障的自动感知以及服务实例自动摘除机制。eureka server在EurekaBootStrap中启动初始化的时候,执行了一行代码registry.openForTraffic(applicationInfoManager, registryCount);这个方法的最后一行,调用了父类的postInit()方法

2021-07-23 23:01:34 303

原创 spring cloud:eureka源码之我见(七)服务下线

Eureka中服务下线有几种方式(1)直接停止服务停止服务后,注册中心(eureka server)在一定时间内没有收到续约请求,则会将服务实例从服务列表中移出(2)在Eureka客户端中调用下线请求// 客户端可以通过如下代码主动通知注册中心下线DiscoveryManager.getInstance().shutdownComponent();(3)直接向注册中心发送下线请求通过注册中心的接口,我们可以强制下线指定的服务,发送delete请求,可以让服务实例下线。在e

2021-07-23 22:32:09 342

原创 spring cloud:eureka源码之我见(六)服务续约(心跳)

eureka client每隔一定的时间,会给eureka server发送心跳,保持心跳,从而让eureka server感知到自己的存活。eureka client服务续约流程:(1)服务续约流程肯定是在eureka client初始化的时候开始执行,这样才能保证eureka server正常感知到服务存活。在DiscoveryClient(eureka client)初始化的时候,会去调度一堆定时任务,其中一个就是HeartbeatThread,心跳线程。(2)在HeartbeatT.

2021-07-23 21:48:59 127

原创 spring cloud:eureka源码之我见(五)抓取注册信息

eureka client在第一次启动的时候,必须从eureka server端一次性抓取全量注册信息,在本地进行缓存,然后每隔30s从eureka server抓取增量的注册信息,跟本地缓存进行合并。一、全量抓取注册信息1. 抓取注册表的逻辑位于eureka client的实现类DiscoveryClient的构造中。如果配置了需要抓取注册信息,那么eureka client就会在启动的时候启动一次抓取全量注册信息流程。(1)eureka client初始化的时候,就会自动全量抓取注册信.

2021-07-23 15:44:43 274

原创 spring cloud:eureka源码之我见(四)服务注册源码剖析

服务注册源码剖析一、Eureka client端的服务注册Eureka client的服务注册流程代码位于eureka client包下的InstanceInfoReplicator类中。还记得之前的Eureka server初始化流程和Eureka client初始化流程中都实例化了一个DiscoveryClient类吗?在他的构造方法中,有一行代码initScheduledTasks();这行代码内部就隐藏着eureka client的注册。(1)在InstanceInfoRe.

2021-07-23 13:35:00 240

原创 spring cloud:eureka源码之我见(三)eureka client启动

eureka client启动源码剖析在eureka源码的eureka-example包下,有一个ExampleEurekaClient类,就是一个eureka client启动的例子。如果是一个Eureka服务,一定会有一个Eureka client,服务实例启动的时候,一定会启动Eureka client,Eureka client去向Eureka server注册。(1)读取eureka-client.properties配置文件,形成一个服务实例的配置类MyDataCenterInsta

2021-07-16 22:45:35 148

原创 spring cloud:eureka源码之我见(二)基于Eureka server的启动源码剖析

基于Eureka server的启动源码剖析eureka server的启动相当于是注册中心的启动,而eureka client的启动相当于是服务的启动。eureka server的启动是依赖于eureka client的启动的,因为eureka server本质上也是一个eureka client。在eureka server使用集群模式部署的时候,eureka server会将自己作为一个eureka client向其他的eureka server去注册。eureka server本质就是一个w

2021-07-16 21:58:47 85

原创 spring cloud:eureka源码之我见(一)eureka源码结构

netflix eureka源码的目录结构如图所示:(1)eureka-client:eureka的客户端,注册到eureka上的一个服务,就是一个eureka client。无论是你要注册,还是要发现别的服务,无论是服务提供者还是服务消费者,都是一个eureka client客户端。(2)eureka-core:这个就是eureka的服务端,其实就是eureka 的注册中心。(3)eureka-resources:这个是基于jsp开发的eureka控制台,web页面。(4)eureka

2021-07-15 21:54:37 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除