![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Eureka
文章平均质量分 92
carl-zhao
I never grew up, but i never stop growing.
展开
-
1、Eureka 源码解析 之 调试环境搭建
Eureka ( 是一个基于 REST (Representational State Transfer)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。在Netflix, Eureka 除了在中间层负载平衡中扮演关键角色外,还用于以下目的。帮助Netflix Asgard - 一个开源服务,使云部署更容易,在快速回滚版本,以防出现问题,避免重新启动100个实例,这可能会花费很长时间。在滚动推送中,为了避免在出现问题的情况下向所有情况传播新版本。对于我们的原创 2020-12-16 07:20:58 · 555 阅读 · 0 评论 -
2、Eureka 源码解析 之 服务配置文件管理解析
Eureka 服务在进行配置管理的时候使用的是接口进行管理。对于 Eureka 服务它提供了很多自定义参数用于服务器上面的各种管理。其实对于 Eureka 来说:它即是一个服务器,因为它是一个注册中心,需要对外部微服务提供服务注册与服务发现;同时它又是一个 Client,因为对于分步式环境当中存在单点故障,为了解决这个功能 Eureka 提供了集群部署功能。那么不同的 Eureka 服务之间就面临微服务注册的注册表信息同步问题。所以 Eureka 也是一个 Eureka Client 它会拉取配置上面的其它原创 2020-12-22 23:08:00 · 487 阅读 · 0 评论 -
3、Eureka 源码解析 之 Eureka Server 启动原理分析
Eureka 是 Netflix 开源的一款注册中心,下面就是 eureka 的架构图。在这个图中有以下几个角色:Eureka Server:Eureka 服务器,它是注册中心提供接口给应用把服务实例的信息注册上来Eureka Client:Eureka 客户端,Eureka 包装好了微服务访问 Eureka 服务器的一系列接口。比如:注册,心跳,服务下线等。Application Server:微服务应用服务器,一个单体服务可以按照不同的领域拆分为多个微服务。微服务可以依赖 Eureka 客户原创 2020-12-24 23:02:19 · 467 阅读 · 1 评论 -
4、Eureka 源码解析 之 Eureka Client 启动原理分析
在前面的一篇文章 3、Eureka 源码解析 之 Eureka Server 启动原理分析当中我们分析了一下 Eureka Server 的启动。在集群环境下 Eureka Server 相互之前需要同步注册表信息。所以不管是微服务当中还是 Eureka Server 当中都需要依赖 eureka-client 这个 Jar 包。它封装 Eureka Server 提供的 Restful 服务,依赖方可以以接口方法的方式方便的进行调用。下面是 Eureka 官网提供的系统架构图。在这个图中有以下几个角色原创 2020-12-27 12:09:32 · 517 阅读 · 1 评论 -
5、Eureka 源码解析 之 Eureka Client 服务注册流程
下面是官方提供的 Eureka 架构图:对于 Eureka 而言,微服务的提供者和消费者都是它的客户端,其中服务提供者关注服务注册、服务续约 和 服务下线等功能,而服务消费者关注于 服务信息的获取。下面我们来看一下 Eureka Client 的服务注册流程。1、Eureka Client 注册流程...原创 2020-12-30 13:20:41 · 566 阅读 · 0 评论 -
6、Eureka 源码解析 之 Eureka Server 多级缓存
下面是官方提供的 Eureka 架构图:1、Eureka Client 全量拉取注册表在微服务中是嵌入了 Eureka Client 的,当服务启动的时候就会从 Eureka Server 中拉取注册的服务信息列表。在微服务中嵌入的 EurekaClient 的实现类 DiscoveryClient 在初始化的时候会通过调用 EurekaHttpClient 去 Eureka Server 拉取全量服务信息列表。在 DiscoveryClient#initScheduledTasks 会启动定原创 2021-01-04 22:14:56 · 647 阅读 · 0 评论 -
7、Eureka 源码解析 之 Eureka Client 续约
下面是官方提供的 Eureka 架构图:1、Eureka Client 续约机制在 Eureka Client 需要定时的向注册中心 Eureka Server 发送续约信息,告诉注册中心当前的微服务处于可用状态,这样注册中心在服务剔除的时候才不会把当前服务实例从注册表中删除。在 DiscoveryClient 进行初始化的时候,会调用 DiscoveryClient#initScheduledTasks 方法。在这个方向当中不仅会启动定时任务调用 CacheRefreshThread 线程定时从原创 2021-01-05 13:21:42 · 352 阅读 · 0 评论 -
8、Eureka 源码解析 之 Eureka Client 服务下线
下面是官方提供的 Eureka 架构图:1、Eureka Client 服务下线当 Eureka Client 服务关闭之前会调用 DiscoveryClient#shutdown 方法。因为这个方法上面标注了 @PreDestroy 在对象销毁之前这个方法就会被调用。 @PreDestroy @Override public synchronized void shutdown() { if (isShutdown.compareAndSet(false,原创 2021-01-06 12:59:29 · 597 阅读 · 1 评论 -
9、Eureka 源码解析 之 Eureka Server 服务过期
下面是官方提供的 Eureka 架构图:1、Eureka Server 为什么要服务过期正常情况下,应用实例下线时候会主动向 Eureka-Server 发起下线请求,也就是我们之前分析的 – 8、Eureka 源码解析 之 Eureka Client 服务下线。但实际情况下,应用实例可能异常崩溃,又或者是网络异常等原因,导致下线请求无法被成功提交。这种情况之后,需要 Eureka Client 定时向 Eureka Server 发送续约配合 Eureka Client 通过定时任务清理超时的租约原创 2021-01-06 23:21:22 · 529 阅读 · 0 评论 -
10、Eureka 源码解析 之 Eureka Server 自我保护机制
下面是官方提供的 Eureka 架构图:1、什么是自我保护机制默认情况下,如果Eureka Server在一定时间内(默认 90 秒,其实不止 90 秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除这个微服务,所以引入了自我保护机制。...原创 2021-01-07 22:20:41 · 1112 阅读 · 2 评论 -
11、Eureka 源码解析 之 Eureka Server 覆盖状态
下面是官方提供的 Eureka 架构图:1、Eureka Server 覆盖状态概述在 InstanceInfo 服务应用信息对象里面不仅有状态status ,还有覆盖状态 overriddenStatus。InstanceInfopublic class InstanceInfo { // 服务应用信息状态 private volatile InstanceStatus status = InstanceStatus.UP; // 服务应用信息覆盖状态 private原创 2021-01-11 23:08:28 · 977 阅读 · 0 评论 -
12、Eureka 源码解析 之 Eureka Client 增量拉取注册表
在之前的博客当中 6、Eureka 源码解析 之 Eureka Server 多级缓存 已经详细说明了在 Eureka Client 启动的时候会去 Eureka Server 里面全量的拉取一下注册到里面的服务信息列表。并且 Eureka Server 里面是使用了多级缓存来保存全量的注册信息列表。Eureka Client 在启动时获取 Eureka Server 中的注册信息,但是作为分布式环境服务随时时可进行上线、下线操作。所以作为注册中心它需要有服务自动上下线发现的功能。原创 2021-01-10 18:59:27 · 1017 阅读 · 0 评论