Spring Cloud 源码分析
文章平均质量分 92
寒山道杳
合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。
展开
-
Hystrix源码解析之——Hystrix 各类执行命令
在上一篇文章中最后提到了AbstractCommand是Hystrix中的一个重要的类,于是这篇文章中准备就这个类中关于命令执行的相关方法进行解析。本篇文章将先了解一下observe和toObservable。一、AbstractCommand#observe 方法1、com.netflix.hystrix.AbstractCommand#observepublic Observable<R> observe() { // us a ReplaySubject原创 2021-12-14 21:32:09 · 870 阅读 · 0 评论 -
Hystrix源码解析之——封装 HystrixCommand(一)
一、Hystrix简介Hystrix是Nettflix中的一个开源项目,它能够在依赖服务失效的时候,可通过隔离系统依赖服务的方式,防止服务出现级联失败,通是Hystrix也提供了失败回滚机制,是系统能够更快的从异常中恢复。其实简单的一句话就是:hystrix为微服务间的调用提供强有力父容错机制,它主要的作用有:在通过第三方客户访问依赖服务出现高延迟或者失败的时候,为系统提供保护和控制 在复杂的分布式系统中防止级联失败(服务雪崩效应) 快速失败(fail fast),同时能快速回复 提供失败回滚原创 2021-11-28 23:12:26 · 819 阅读 · 0 评论 -
Eureka Client 源码解析-更新本地配置到Server
在Eureka Client 源码解析这篇文章中,说到按需注册定时任务的时候,当时没有对 InstanceInfoReplicator#run 方法中的DiscoveryClient#refreshInstanceInfo 方法中的一些调用进行解析,因此这里来就这个来进行一下简单的解析。首先在 DiscoveryClient#refreshInstanceInfo 方法中开始有两个方法的调用ApplicationInfoManager#refreshDataCenterInfoIfRequired 和原创 2021-11-28 23:01:57 · 457 阅读 · 0 评论 -
OpenFeign 源码解析
一、核心组件与概念关于OpenFeign源码阅读,可从两个方面来进行。首先是被@FeignClient注解修饰的接口类(FeignClient 接口类)是如何创建的,就是其Bean实例是如何被创建的。然后是调用FeignClient 接口类网络请求相关的函数时,OpenFeign 时如何发送网络请求的。对于OpenFeign 相关的类,也可以以此角度来看,一部分是初始化相应的Bean 实例,另一部分是用来在调用方法时的网络请求。二、动态注册 BeanDefinitionOpenFeign可以通过原创 2021-11-23 20:57:54 · 1581 阅读 · 0 评论 -
Eureka Server 源码解析
Eureka Server 为了满足与 Eureka Client 的交互,它提供了以下功能:服务注册 接收服务心跳 服务剔除 服务下线 获取集群 获取注册表中的服务实例一、Eureka Server 端基本设计在这里首先看一张类结构图:从上面的类图中,可以看到最顶层的接口是 LookupService 和 LeaseManager,关于LookupService 接口,在前面一篇文章已有阐述,它的主要作用是做服务列表查询的(因为 Eureka Server 端也可以向自己发原创 2021-11-20 00:12:03 · 972 阅读 · 0 评论 -
Eureka Client 源码解析
一、Client 端基本信息在老版本的 Spring Cloud 的使用中,当构建客户端的时候,会在启动类上标注 @EnableDiscoveryClient 注解,但是在新版本的时候,便不需再标注了,这是因为 Spring Boot 中的自动配置机制不同的原因,这里暂不做论述。那客户端是如何做自动装配的呢?Spring Boot 自身的注解 @SpringBootApplication 本身就是一个组合注解,其中之一的 @EnableAutoConfiguration。注:本系列文章 spri原创 2021-11-16 22:31:54 · 1010 阅读 · 3 评论