
spring
文章平均质量分 81
Johar
蓝是天的颜色、红是火的象征,我不学大海抄袭天的蓝、也不学晚霞模拟火的红。我就是我,生命是我的、命运是我的。
展开
-
Spring Cloud Gateway源码
默认情况下,Spring Cloud Gateway 会根据服务注册中心(例如 Eureka Server)中维护的服务列表,以服务名(spring.application.name)作为路径创建动态路由进行转发,从而实现动态路由功能。使用Spring cloud开发微服务系统,一般采用的架构如下所示,Gateway不仅作为请求转发的入口,还会进行权限验证、监控、缓存、请求路由、流量限制、请求熔断、请求重试等功能。lb:uri 的协议,表示开启 Spring Cloud Gateway 的负载均衡功能。原创 2023-02-06 18:37:45 · 1566 阅读 · 0 评论 -
FeignClient中LoadBalancer源码解析
FeignBlockingLoadBalancerClient#excute是LB的核心代码逻辑,主要包括三个方面,一个是LB的生命周期管理,一个是灰度策略;一个负载均衡选择后端服务实例。条件加载的逻辑在FeignLoadBalancerAutoConfiguration 中,默认是DefaultFeignLoadBalancerConfiguration。实际上FeignClient中LoadBalancer与LoadBalancer差不多,也是处理灰度策略、负载均衡策略,最后执行http请求。原创 2023-01-22 20:37:57 · 761 阅读 · 0 评论 -
LoadBalancer源码解析
此外,负载均衡还和ServiceInstanceListSupplier#get方法有关,灰度策略就是在HintBasedServiceInstanceListSupplier重新实现了get方法,实现了灰度调度功能,源码分析以HintBasedServiceInstanceListSupplier为例进行分析。LB拦截器里面实现了intercept方法,将LB负载均衡逻辑的需要的参数装填好,调用LoadBancerClient的execute方法。最后就是进行http请求。原创 2023-01-22 20:08:07 · 1577 阅读 · 0 评论 -
FeignClient调用源码解析
FeignCLient整体流程如下图所示,在应用添加注解@EnableFeignClients时,就在FeignClientsRegistrar中通过FactoryBean将应用中的FeignClient实例化到Spring容器中,并实现各个方法,最终根据实际配置使用配置的Client进行http请求,反序列化。除了可以在应用程序中,对Feign进行配置外,在spring-cloud-starter-openfeign中,也有一些必要的条件配置在starter中通过条件进行注册。原创 2023-01-15 14:43:32 · 1654 阅读 · 0 评论 -
Spring RestTemplate请求过程
目前Spring RestTemplate是常用的http请求工具类,本文简单Spring RestTemplate的请求过程。原创 2022-12-09 00:31:12 · 822 阅读 · 0 评论 -
Redis序列化Jackson2JsonRedisSerializer坑
项目上使用Jackson2JsonRedisSerializer 给value做序列化。近期由于在进行项目重构,调整了包的组织结构,导致存在载redis对象class路径发生变化。在发布后,读取redis里面数据解析失败。原创 2022-11-23 21:30:16 · 1312 阅读 · 0 评论 -
@Tranctional失效场景
spring系列文章@Tranctional失效场景文章目录spring系列文章一、使用1. 事务传播行为2. 事务隔离级别3.回滚规则二、失效场景1. @Tranctional应用在非public修饰的方法上2. @Tranctional注解属性propagation设置错误3. @Transactional注解属性rollbackFor设置错误4. 同一个类中方法调用,导致@Tranctional失效5. 异常被catch吞掉了导致@Tranctional失效6.数据库引擎不支持事务一、使原创 2022-02-20 18:16:39 · 745 阅读 · 0 评论 -
限制后端接口调用次数
系列文章目录第一章 AOP后端控制接口调用次数第二章 前后端配合控制接口调用次数文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的原创 2022-01-15 23:57:35 · 1204 阅读 · 0 评论 -
SpringCloud自定义配置-PropertySourceLocator
文章目录背景一、PropertySourceLocator二、原理1、源码2.使用背景项目上需要在SpringCloud的基础上,拓展SpringCloud的配置文件,所以使用了PropertySourceLocator来拓展SpringCloud的配置文件。一、PropertySourceLocatorPropertySourceLocator接口主要是需要实现PropertySource<?> locate(Environment environment)接口即可,具体源码如下:.原创 2021-10-15 23:22:03 · 3201 阅读 · 0 评论 -
SpringBoot 连接多个Rabbitmq数据源
SpringBoot 连接多个Rabbitmq数据源前言一、单个RabbitMq数据源二、多个RabbitMQ数据源2.1 增加配置信息2.2 代码实现三、RabbitMQ的optional queue arguments 和 policies3.1 optional queue agruments3.2 policies前言最近工作上需要在一个项目里面使用两个RabbitMq作为数据源,记录一下大概的实现过程,加深影响。一、单个RabbitMq数据源一般情况下,都是依赖单个RabbitMQ作..原创 2021-06-05 01:25:23 · 4183 阅读 · 0 评论 -
spring starter原理和实例
spring starter原理和实例背景spring starter实现原理自定义starter背景springboot的一个优势就是starter,利用starter,可以避免一些的繁琐的配置,将starter里面的功能开箱即用。例如:spring-boot-starter-jpa等,只需要配置一下数据连接信息,就可以进行数据库操作。当然starter技术也没有想象的高大上,最终也是一行行代码实现的,目前就让我们一起看一下接下面纱的starter。spring starter实现原理在META-原创 2021-01-06 10:11:21 · 8559 阅读 · 0 评论