《升职加薪之SpringCloudNetflix源码剖析》
文章平均质量分 96
Spring Cloud Netflix源码剖析
墨家巨子@俏如来
EasyJF开源团队成员,10 年Java开发及项目管理经验,在企业中承担项目经理、架构师等职位,喜欢研究技术,执着于对技术底层的探索及源码的剖析;喜欢写文章,享有阿里云专家博主、CSDN博客专家、Java领域优质创作者、华为云开发者联盟成员/技术博主(CSDN搜索-墨家巨子@俏如来)代表作《SpringCloud入门到精通》,《SpringCloud源码深度剖析》,《SpringBoot入门到精通》,《Spring源码深度剖析》等等
展开
-
二十四.SpringCloudConfig源码-配置拉取流程
前言这篇文章是接上一篇的,因为文章太长看起来太累,所以就分了一下EnvironmentRepository.findOne 查找配置上回说到 EnvironmentController 控制器 ,重点关注 labelled 方法, 我打了一个断点跟了一下,代码会走到了 EnvironmentEncryptorEnvironmentRepository#findOne方法中,源码如下:@Overridepublic Environment findOne(String name, String p原创 2021-05-27 00:12:33 · 457 阅读 · 1 评论 -
二十三.SpringCloudConfig源码-初始化配置
前言今天这篇文章我们来分析一下Spring Cloud Config 配置中心的源码,这应该是Spring Cloud Netflix的源码分析的最后一篇。下一个系列我将会继续分析Spring Cloud Alibaba相关组件的源码。Spring Cloud Config 基础使用请移步 《配置中心Spring Cloud Config》回顾配置中心的工作流程:微服务 -> 配置中心 -> Git仓库简单回顾一下配置中心的搭建流程,首先需要导入spring-cloud-config-原创 2021-05-27 00:11:24 · 622 阅读 · 2 评论 -
二十二.SpringCloud源码剖析-Hystrix降级
前言这篇文章是接上一篇《SpringCloud源码剖析-Hystrix初始化》,继续完成Hystrix未完成的执行流程HystrixCommand上回说到,Hystrix通过HystrixCommandApsect 环绕通知@Around切到@HystrixCommand注解的方法。然后会创建 HystrixCommand 去执行Hystrix,在创建HystrixCommand的时候会初始化熔断器和线程池。HystrixCommand创建好之后,如果没有配置observable模式,默认会交给Com原创 2021-05-26 00:11:43 · 623 阅读 · 4 评论 -
二十一.SpringCloud源码剖析-Hystrix的初始化
前言Hystrix不是停更了吗?你在这写什么?是,Hystrix是停止更新版本了,说不定后面又继续更新了呢?比如阿里的dubbo不也是停更一段时间后又继续更新了么。Hystrix只是停止开发新的版本,并不是完全停止维护,有Bug依然会修复,Hystrix已经是比较稳定的,很多项目依旧在使用它。再者说Hystrix是SpringCloud 第一代技术标准中的非常重要的一个组件,可以看做是我们学习SpringCloud全家桶的一个必不可少的过程。在实际项目中你当然可以使用Spring Cloud Aliba原创 2021-05-24 23:46:44 · 1190 阅读 · 6 评论 -
二十.SpringCloud源码剖析-Zuul使用Ribbon负载均衡-RibbonRoutingFilter
前言经过前面几章的学习,我们对Zuul的的详细执行流程,以及内置的Filter都有了一些认识,本篇文章是针对RibbonRoutingFilter做一个详细的分析,跟一下它是如何使用Ribbon对下游的微服务进行负载均衡的。Ribbon的原理见:《Ribbon负载均衡原理》回顾一下zuul的执行流程,Zuul的执行流程是这样的首先请求进来会先到达ZuulController ,ZuulController把请求交给ZuulServlet去处理在ZuulServelt会调用 ZuulRunner原创 2021-01-28 23:14:03 · 1430 阅读 · 0 评论 -
十九.SpringCloud源码剖析-Zuul的执行流程
前言在之前的章节我们详细分析了Zuul的Filter,这一章节我们来详细跟一下Zuul的执行流程Zuul的执行流程是这样的首先请求进来会先到达ZuulController ,ZuulController把请求交给ZuulServlet去处理在ZuulServelt会调用 ZuulRunner 依次执行: init初始化,pre前置filter,route路由filter,post后置filter, error 异常filterZuulRunner通过 FilterProcessor 去执行各原创 2021-01-27 15:07:13 · 786 阅读 · 1 评论 -
十八.SpringCloud源码剖析-Zuul的自动配置和核心Filter详解
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一.@EnableZuulProxy注解 @EnableZuulProxy原创 2021-01-27 11:14:19 · 972 阅读 · 0 评论 -
十七.SpringCloud源码剖析-Zuul的核心Filter
zuul的执行流程Zuul是服务网关,是微服务的访问入口和出口,它的核心工作思想是:根据客户端的请求URL,通过路由映射到相应的微服务,然后通过服务发现的方式结合Ribbon实现对下游微服务的负载均衡 。Zuul通过大量的Filters实现上述功能,在zuul底层通过ZuulServlet定义整个请求的流程,请求会调用经过pre前置过滤器,route路由过滤器,post后置过滤器,然后返回响应结果,下面是一张摘抄于SpringCloud官网的zuul的生命周期图这张图的大致流程为:当客户端请求过来原创 2020-12-28 23:30:33 · 515 阅读 · 0 评论 -
十六.SpringCloud源码剖析-Feign源码分析
前言Spring Cloud OpenFeign 对 Netflix Feign 进行了封装,我们通常都使用Spring Cloud OpenFeign作为服务的负载均衡,本文章主要是探讨一下OpenFeign的初始化流程,以及生成代理类注入到Spring的过程Feign的基本使用Feign是一个声明式的http客户端,使用Feign可以实现声明式REST调用,它的目的就是让Web Service调用更加简单。Feign整合了Ribbon和SpringMvc注解,这让Feign的客户端接口看起来就像原创 2020-11-12 17:43:58 · 883 阅读 · 3 评论 -
十五.SpringCloud源码剖析-Ribbon工作流程
11111原创 2020-10-08 11:33:03 · 992 阅读 · 1 评论 -
十四.SpringCloud源码剖析-Ribbon的初始化配置
Ribbon的自动配置RibbonAutoConfiguration在spring-cloud-netflix-ribbon-2.0.1.RELEASE.jar包的META-INF目录中有这么一个文件spring.factories,内容如下:org.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration当原创 2020-10-08 00:20:57 · 1031 阅读 · 0 评论 -
十三.SpringCloud源码剖析-Eureka Server服务下线
系列文章目录一.SpringCloud源码剖析-Eureka核心API二.SpringCloud源码剖析-Eureka Client 初始化过程三.SpringCloud源码剖析-Eureka服务注册四.SpringCloud源码剖析-Eureka服务发现五.SpringCloud源码剖析-Eureka Client服务续约六.SpringCloud源码剖析-Eureka Client取消注册七.SpringCloud源码剖析-Eureka Server的自动配置八.SpringCloud源原创 2020-10-02 23:02:50 · 461 阅读 · 0 评论 -
十二.SpringCloud源码剖析-Eureka Server服务剔除
系列文章目录一.SpringCloud源码剖析-Eureka核心API二.SpringCloud源码剖析-Eureka Client 初始化过程三.SpringCloud源码剖析-Eureka服务注册四.SpringCloud源码剖析-Eureka服务发现五.SpringCloud源码剖析-Eureka Client服务续约六.SpringCloud源码剖析-Eureka Client取消注册七.SpringCloud源码剖析-Eureka Server的自动配置八.SpringCloud源原创 2020-10-02 16:44:11 · 640 阅读 · 0 评论 -
十一.SpringCloud源码剖析-Eureka Server服务注册表拉取
系列文章目录一.SpringCloud源码剖析-Eureka核心API二.SpringCloud源码剖析-Eureka Client 初始化过程三.SpringCloud源码剖析-Eureka服务注册四.SpringCloud源码剖析-Eureka服务发现五.SpringCloud源码剖析-Eureka Client服务续约六.SpringCloud源码剖析-Eureka Client取消注册七.SpringCloud源码剖析-Eureka Server的自动配置八.SpringCloud源原创 2020-10-02 00:01:08 · 606 阅读 · 0 评论 -
十.SpringCloud源码剖析-Eureka Server服务续约
系列文章目录一.SpringCloud源码剖析-Eureka核心API二.SpringCloud源码剖析-Eureka Client 初始化过程三.SpringCloud源码剖析-Eureka服务注册四.SpringCloud源码剖析-Eureka服务发现五.SpringCloud源码剖析-Eureka Client服务续约六.SpringCloud源码剖析-Eureka Client取消注册七.SpringCloud源码剖析-Eureka Server的自动配置八.SpringCloud源原创 2020-10-01 15:27:20 · 435 阅读 · 0 评论 -
九.SpringCloud源码剖析-Eureka Server服务注册流程
历史文章一.SpringCloud源码剖析-Eureka核心API二.SpringCloud源码剖析-Eureka Client 初始化过程三.SpringCloud源码剖析-Eureka服务注册四.SpringCloud源码剖析-Eureka服务发现五.SpringCloud源码剖析-Eureka Client服务续约六.SpringCloud源码剖析-Eureka Client取消注册七.SpringCloud源码剖析-Eureka Server的自动配置八.SpringCloud源码剖原创 2020-09-29 17:51:05 · 545 阅读 · 0 评论 -
八.SpringCloud源码剖析-Eureka Server初始化流程
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2020-09-09 22:49:50 · 741 阅读 · 0 评论 -
七.SpringCloud源码剖析-Eureka Server的自动配置
系列文章目录一.SpringCloud源码剖析-Eureka核心API二.SpringCloud源码剖析-Eureka Client 初始化过程三.SpringCloud源码剖析-Eureka服务注册四.SpringCloud源码剖析-Eureka服务发现文章目录系列文章目录前言一、EureakServerAutoConfiguration 服务端的自动创建1.EureakServerAutoConfiguration的注册2.EureakServerAutoConfiguration配置了什么?原创 2020-09-09 22:49:06 · 632 阅读 · 0 评论 -
六.SpringCloud源码剖析-Eureka Client取消注册
取消注册取消注册(服务下线)指的是EureakClient正常关闭之前,微服务会主动向EurekaServer发送下线请求,EureakServer接收到请求从注册表中剔除下线的服务DiscoveryClient.shutdown 方法DiscoveryClient是服务发现最核心的实现,DiscoveryClient通过shutdown 方法取消服务注册,方法上通过@PreDestroy标记该方法是实例的销毁方法,当应用关闭,容器正常关闭,Bean的销毁方法执行,源码如下:@Singletonp原创 2020-08-31 14:25:05 · 1227 阅读 · 0 评论 -
五.SpringCloud源码剖析-Eureka Client服务续约
什么是服务续约EureakClient会定时向EureakServer发送续约心跳(默认30s/次) ,来告诉EurekaServer自己的健康状况,默认情况下3次续约失败(90s),EurekaServer考虑剔除续约失败的客户端服务初始化定时任务在EuerakClient中依然是通过scheduler定时实现,在com.netflix.discovery.DiscoveryClient#initScheduledTasks中进行初始化,源码如下 /** * Initializes all原创 2020-08-31 10:48:00 · 567 阅读 · 0 评论 -
四.SpringCloud源码剖析-Eureka Client服务发现
服务获取继续看com.netflix.discovery.DiscoveryClient的initScheduledTasks()方法,里面还有两个定时任务 if (clientConfig.shouldFetchRegistry()) { // registry cache refresh timer int registryFetchIntervalSeconds = clientConfig.getRegistryFetchIntervalSeconds原创 2020-08-25 14:17:28 · 723 阅读 · 0 评论 -
三.SpringCloud源码剖析-Eureka Client服务注册
SpringCloud已经成为处理Java微服务架构最流行的框架之一,对于一个优秀的程序员而言不仅需要灵活的使用SpringCloud,还要知道他的实现原理和思想,知其然知其所以然,只有这样我们写出来的代码才有灵魂,出现bug才能很快定位到问题所在,以及在跳槽面试的时候成为一个吊打面试官的存在。本章将带领大家一步一步分析SpringCloud的Eureka客户端的源码,本文的目的针对Eureak三大核心进行探究:服务注册,服务发现,服务续约。一.服务注册服务注册与发现是SpringCloud最基础的部分原创 2020-08-25 11:19:22 · 918 阅读 · 0 评论 -
二.SpringCloud源码剖析-Eureka Client 初始化过程
一.服务注册1.Eureak的自动配置 EurekaClientAutoConfiguration有了解过SpringBoot自动配置的同学应该知道,在主程序启动类上我们会贴一个 @SpringBootApplication 注解,该注解里面包含了一个 @EnableAutoConfiguration 注解,该注解的作用是开启SpringBoot的自动配置,即:在 @EnableAutoConfiguration 标签中使用了一个 AutoConfigurationImportSelector 选择器原创 2020-08-20 15:52:48 · 975 阅读 · 0 评论 -
一.SpringCloud源码剖析-Eureka核心API
前言SpringCloud已经成为落地Java微服务架构最流行的框架之一,对于一个优秀的程序员而言不仅需要灵活的使用SpringCloud,还要知道他的实现原理和思想,知其然知其所以然,只有这样我们写出来的代码才有灵魂,熟读源码无论对解决开发中的BUG,还是应对面试对我们都有很大的帮助,本章将带领大家一步一步分析SpringCloud的源码。一.Eureak核心功能我们先来回顾一下Eureka的几个核心功能1.1.服务注册Eureka是一个服务注册与发现组件,它包含了EurekaServer 服务原创 2020-08-20 15:50:47 · 1801 阅读 · 0 评论