Tags : Eureka,源码
发表时间:2020-01-31 14:16:10
点击上方蓝色字关注我们~
Eureka源码剖析之一:初始化-启动
Eureka源码剖析之二:服务注册
Eureka源码剖析之三:服务拉取
Eureka源码剖析之四:服务续约
Eureka源码剖析之五:服务下线
总结下eureka系统架构和相关面试题。
〓一、Eureka系统架构交互图
来自网上更详细的图:
〓二、定时任务汇总
客户端定时任务
1)每30秒刷新缓存(服务拉取)
2)每30秒
Tags : Eureka,源码,自我保护机制
发表时间:2020-01-31 14:13:22
点击上方蓝色字关注我们~
Eureka源码剖析之一:初始化-启动
Eureka源码剖析之二:服务注册
Eureka源码剖析之三:服务拉取
Eureka源码剖析之四:服务续约
Eureka源码剖析之五:服务下线
当EurekaServer由于自身发生网络故障等原因无法接收到EurekaClient端发送的心跳(续约)时,不会将未收到心跳(续约)请求的服务下线,虽然这样短时间内可能造成EurekaServer维护的注册列表信息不是完全准确的,但保证了EurekaServer可用性。
主要通过exp
Tags : Eureka,源码,服务下线
发表时间:2020-01-31 14:12:25
点击上方蓝色字关注我们~
Eureka源码剖析之一:初始化-启动
Eureka源码剖析之二:服务注册
Eureka源码剖析之三:服务拉取
Eureka源码剖析之四:服务续约
现在研究下Eureka服务下线的源码。由服务续约的源码我们知道,如果客户端在90秒内没有继续跟服务端进行心跳的话,服务端会进行下线客户端并且更改状态将其剔除,并且也会在集群中告知(同步)其它节点。
〓Eureka Client
/**
&nb
Tags : Eureka,源码,服务续约
发表时间:2020-01-31 14:11:07
Eureka源码剖析之一:初始化-启动
Eureka源码剖析之二:服务注册
Eureka源码剖析之三:服务拉取
这里主要看下Eureka关于服务续约的源码,其实大致跟服务注册流程类似,不过更多细节和逻辑还是很大不同的。
〓Eureka Client
// 在DiscoveryClient里有renew方法,大概知道其是服务续约的入口。renew使用http的方式发送心跳给服务端,如果服务端返回404,说明是某些原因造成服务是没有注册成功,那么就会再次调用register注册接口进行注册。 @Singlet
Tags : Eureka,源码,服务拉取
发表时间:2020-01-31 14:09:36
点击上方蓝色字关注我们~
Eureka源码剖析之一:初始化-启动
Eureka源码剖析之二:服务注册
前面已经剖析了Eureka初始化、Eureks服务注册,现在继续Eureka服务拉取。Eureka服务集群中,客户端会向服务端拉取已经注册的实例,实时更新注册服务列表。
〓Eureka Client
// DiscoveryClient实例创建时会调用服务拉取,默认开启拉取注册信息。 // 接着调用拉取注册方法,如果拉取失败,则从备份中拉取 if (clientConfig.shouldFetchRegi
Tags : Eureka,源码,服务注册
发表时间:2020-01-31 14:07:22
Eureka源码剖析之一:初始化-启动
EurekaClient在启动时会进行一系列初始化操作,本篇文章主要解析EurekaClient端向EurekaServer端发起注册请求的具体过程,具体分为EurekaClient端发送请求和EurekaServer端接收请求。在较新的版本看到代码进行了优化,所以还是以某一版本为准进行剖析。这里是1.X版本最新版本1.9.15。
〓Eureka Client发出注册请求
// DiscoveryClient构造器中: &n
Tags : Eureka,源码剖析
发表时间:2020-01-16 21:26:13
Eureka启动的过程有client端和server端, Eureka client端入口是DiscoveryClient类, Eureka server端入口是EurekaBootStrap类, 接下来我们就从源码看下它们做了什么吧!
〓Eureka Client端启动1)看下DiscoveryClient类图:
由此看出DiscoveryClient实现了EurekaClient、LookupService接口,并且定义了内部类:DiscoverClientOptionalArgs,可选参数类,源码里实现为空,是默认实
Tags : 高性能,Netty,FastThreadLocal,源码
发表时间:2018-09-09 13:16:36
说到Netty的FastThreadLocal类,自然而然的想到JDK的ThreadLocal,为什么Netty觉得ThreadLocal不好?不够快吗?那么这里直接说下ThreadLocal存在的问题。
1、JDK ThreadLocal的问题
Thread中的ThreadLocalMap存储ThreadLocal,ThreadLocalMap内部使用ThreadLocalMap.Entry数组存储每一个ThreadLocal,存储计算和HashMap类似,要计算key的索引位置=key.threadLocalHashC
Tags : ZooKeeper,zk,应用场景
发表时间:2018-06-05 00:27:29
我们都知道ZK现在在整个技术圈都可以见到其身影,特别是分布式环境,基本上是必不可少的一个组件。 下面就罗列下ZK常用的八大应用场景,帮助你更清楚的了解Zookeeper是用在哪些方面上。
1、数据发布和/订阅
主要的一个场景,比如配置中心。我们会将配置的相关信息都存放在一个中心,这样我们的应用就不用每次修改参数就要进行重启,使用了zk作用配置中心的数据推送更新,这样我们就能方便的进行数据更新,每次将相关数据发布到配置中心,然后由应用服务去订阅,这样就能动态的进行配置数据的更新。
2、负载均衡
Tags : Zookeeper,zk,源码
发表时间:2018-04-28 23:13:32
1. 从zkServer.sh启动脚本可以看到启动类QuorumPeerMain
2. 调用initializeAndRun初始化参数和启动服务:
①解析配置文件zoo.cfg,
②DatadirCleanupManager启动和调度清洗任务,
③如果启动加上配置文件参数且有severs配置,则启动集群模式,否则启动standalone单机模式
3. 单机:
1) 启动Zoo