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