
SpringCloud
文章平均质量分 93
张书康
学海无涯。
展开
-
SpringBoot | 常见几种异常配置方案
在上一篇博客中,分析了spring 和 springboot异常的源码执行流程,《SpringBoot异常机制源码分析》,解析流程梳理之后,接下来主要对我们项目中的异常配置,做一个整理。在使用spring、springBoot的项目中,常见的配置大概有以下三种方案:1)使用@ControllerAdvice注解,自定义 exceptionHandler,继承 ResponseEnt...原创 2017-12-21 18:26:16 · 2771 阅读 · 2 评论 -
Spring Cloud Config 动态刷新实现机制
首先 spring cloud config 动态刷新功能相关类是整合在 spring-cloud-context包中,包括 RefreshEndpoint 以及配置类。通过以下变量来确定是否开启,默认为true。@ConditionalOnProperty(value = "endpoints.refresh.enabled", matchIfMissing = true)Refresh...原创 2019-03-07 11:38:51 · 20142 阅读 · 8 评论 -
Spring Cloud Ribbon 核心类
原创 2019-02-28 20:07:55 · 476 阅读 · 0 评论 -
SpringCloud | 深入解析SpringCloud中的父子容器
概述在引入 SpringCloud 的项目中会多次创建 Spring 容器,本篇从源码角度深入分析具体哪些点会创建 Spring 容器,以及这些容器之间的区别与联系。本文介绍的Spring相关容器是基于SpringCloud项目。容器大致分为三层:BootStrap Spring 容器:由SpringCloud 监听器创建,用来初始化 SpringCloud 上下文Spring...原创 2019-01-27 01:00:42 · 3081 阅读 · 4 评论 -
SpringCloud | SpringCloud Feign的前世今生【源码深入分析】
概述springCloud feign主要对netflix feign进行了增强和包装,本篇从源码角度带你过一遍装配流程,揭开feign底层的神秘面纱。主要包括feign整合ribbon,hystrix,sleuth,以及生成的代理类最终注入到spring容器的过程。篇幅略长,耐心读完,相信你会有所收获。Feign架构图一些核心类及大致流程:大体步骤:1、注册FeignClie...原创 2018-10-13 11:21:22 · 4240 阅读 · 1 评论 -
SpringCloud | Feign如何整合Ribbon进行负载均衡的?
Ribbon是SpringCloud框架进行负载均衡的脚手架,贯穿springCloud项目中所有的http服务调用。Ribbon针对RestTemplate负载均衡已经提供了完整实现,网上很多的ribbon demo也是分析restTemplate如何负载均衡的。而我们都知道,feignClient已经默认使用了ribbon,feign是如何利用ribbon的负载均衡的呢?带着疑惑看了一遍代...原创 2017-12-19 19:40:51 · 21407 阅读 · 6 评论 -
SpringBoot2 | SpringBoot Environment源码分析(四)
版权声明:本文为博主原创文章,转载请标明出处。SpringBoot2 | SpringBoot启动流程源码分析(一)SpringBoot2 | SpringBoot启动流程源码分析(二)SpringBoot2 | @SpringBootApplication注解 自动化配置流程源码分析(三)一、概述Environment是 spring 为运行环境提供的高度抽象接口,项...原创 2018-09-17 15:32:32 · 11162 阅读 · 1 评论 -
Spring Cloud | Spring Cloud Consul 重写服务发现逻辑
1)概述Spring Cloud提供了完整的服务注册和服务发现逻辑,但是在devops流行的今天,简单的服务发现逻辑,并不能满足我们的需求,特别是在服务很多的情况下。比如:如果一位开发同学拉取并部署了项目project-a,另一位同学也部署了project-a,也就意味着project-a此时有两套环境。假如一个公司有成百上千个微服务,一个服务就有可能出现很多测试环。如何保证服务调用能...原创 2018-07-10 14:17:33 · 2244 阅读 · 2 评论 -
SpringCloud | SpringCloud Finchley + Spring Boot 2.0 集成Consul(1.2版本)
SpringCloud Finchley + Spring Boot 2.0 集成Consul(1.2版本)概述:Spring Boot 2.0相对于之前的版本,变化还是很大的。首先对jdk的版本要求已经不能低于1.8,其次依赖的spring的版本也是最新版本5.0,并集成了功能强大的webflux等。 SpringCloud Finchley 版本的升级也带来了全新组件:Spr...原创 2018-07-09 14:18:22 · 3017 阅读 · 0 评论 -
SpringCloud | FeignClient和Ribbon重试机制区别与联系
在spring cloud体系项目中,引入的重试机制保证了高可用的同时,也会带来一些其它的问题,如幂等操作或一些没必要的重试。 今天就来分别分析一下 FeignClient 和 Ribbon 重试机制的实现原理和区别,主要分为三点: 1)FeignClient重试机制分析 2)Ribbon重试机制分析 3)FeignClient和Ribbon重试机制的区别于联系原创 2018-01-03 12:03:29 · 7728 阅读 · 2 评论 -
SpringBoot | 异常配置源码分析
springboot的异常处理依旧是spring的异常处理,只是在spring的基础之上多了一个统一异常出口。 首先看一下spring异常处理入口肯定是spring接受请求的类中:DispatcherServlet类 在有异常的情况下,上面方法会走到异常入口processDispatchResult(processedRequest, response, mappedHandler, m原创 2017-12-20 18:52:18 · 899 阅读 · 0 评论 -
SpringCloud Sleuth 实现业务逻辑日志包含 Span 和 Trace信息
概述SpringCloud Sleuth是Spring Cloud的核心组件之一,实现了一种分布式链路跟踪的功能。在调用链层级很深的分布式系统中,为定位问题提供了很大便利。Sleuth 大致的原理是自定义了一个拦截器:TraceFeignRequestInterceptor,该拦截器继承了 Feign 的拦截器接口:RequestInterceptor,所以在服务与服务直接调用时,可以进行一些...原创 2019-05-21 16:02:04 · 4977 阅读 · 2 评论