一 相关概念 影子,我们都知道是什么意思,百度百科:物体挡住光线后,映在地面或其他物体上的形象。如果用在我们技术领域,比如数据方面,可以理解成是数据的一份拷贝,也就是“原封不动”的进行复制。那么把“影子”用在全链路压测是怎样的呢? 影子库:实际中使用的数据库的完整数据库数据拷贝,比如进行压测数据隔离的影子数据库,与生产数据库应当使用相同的配置。 影子表:是实际 […]
一 相关概念 影子,我们都知道是什么意思,百度百科:物体挡住光线后,映在地面或其他物体上的形象。如果用在我们技术领域,比如数据方面,可以理解成是数据的一份拷贝,也就是“原封不动”的进行复制。那么把“影子”用在全链路压测是怎样的呢? 影子库:实际中使用的数据库的完整数据库数据拷贝,比如进行压测数据隔离的影子数据库,与生产数据库应当使用相同的配置。 影子表:是实际 […]
总结下eureka系统架构和相关面试题。 〓一、定时任务汇总 客户端定时任务 1)每30秒刷新缓存(服务拉取)2)每30秒发送心跳(服务续约) 服务端定时任务 1)每10分钟更新集群节点数据2)每15分钟更新续约数及阈值3)每1分钟剔除过期注册信息 〓二、Eureka系统架构交互图 来自网上更详细的图: 〓三、常见(面试)问题汇总 1、Server节点能否在配 […]
当EurekaServer由于自身发生网络故障等原因无法接收到EurekaClient端发送的心跳(续约)时,不会将未收到心跳(续约)请求的服务下线,虽然这样短时间内可能造成EurekaServer维护的注册列表信息不是完全准确的,但保证了EurekaServer可用性。 主要通过expectedNumberOfRenewsPerMin,numb […]
现在研究下Eureka服务下线的源码。由服务续约的源码我们知道,如果客户端在90秒内没有继续跟服务端进行心跳的话,服务端会进行下线客户端并且更改状态将其剔除,并且也会在集群中告知(同步)其它节点。 〓Eureka Client /** * 注销服务,调用client的cancel服务,往里面看也就是调用了服务端的http delete 请求进行服 […]
这里主要看下Eureka关于服务续约的源码,其实大致跟服务注册流程类似,不过更多细节和逻辑还是很大不同的。 〓Eureka Client // 在DiscoveryClient里有renew方法,大概知道其是服务续约的入口。renew使用http的方式发送心跳给服务端,如果服务端返回404,说明是某些原因造成服务是没有注册成功,那么就会再次调用r […]
前面已经剖析了Eureka初始化、Eureks服务注册,现在继续Eureka服务拉取。Eureka服务集群中,客户端会向服务端拉取已经注册的实例,实时更新注册服务列表。 〓Eureka Client // DiscoveryClient实例创建时会调用服务拉取,默认开启拉取注册信息。 // 接着调用拉取注册方法,如果拉取失败,则从备份中拉取 if […]
EurekaClient在启动时会进行一系列初始化操作,本篇文章主要解析EurekaClient端向EurekaServer端发起注册请求的具体过程,具体分为EurekaClient端发送请求和EurekaServer端接收请求。在较新的版本看到代码进行了优化,所以还是以某一版本为准进行剖析。这里是1.X版本最新版本1.9.15。 〓Eureka […]
Eureka启动的过程有client端和server端, Eureka client端入口是DiscoveryClient类, Eureka server端入口是EurekaBootStrap类, 接下来我们就从源码看下它们做了什么吧! 〓Eureka Client端启动 1)看下DiscoveryClient类图: 由此看出DiscoveryClient实现 […]
COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang