![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Cloud
文章平均质量分 83
Spring Cloud常见问题
爱我所爱0505
喜欢编程
展开
-
Hystrix请求合并
目录一、介绍二、代码示例1. 请求合并HystrixCollapserService2. 批量请求BatchCommandService3. 调用三、参考资料一、介绍Hysrix利用一个合并处理器,将对同一个服务发起的连续请求合并成一个请求批量处理,即:多个单个请求转换为单个批量请求,实际是批量请求模式。 核心类com.netflix.hystrix.HystrixCollapser,默认连续10ms(timerDelayInMillisec...原创 2021-12-08 19:33:56 · 405 阅读 · 0 评论 -
Hystrix实现熔断降级
目录一、Hystrix执行过程二、Hystrix熔断机制1. 熔断原理2.HystrixCircuitBreakerImpl源码解析3. 熔断器开关状态4. 采样统计三、配置参数四、参考资料一、Hystrix执行过程step1:每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中。step2:执行execute()/queue做同步或异步调用。step3:判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤.原创 2021-11-01 15:31:49 · 765 阅读 · 0 评论 -
Servlet3实现业务隔离(异步上下文)
一、Servlet的同步与异步Servlet2.x规范中,所有处理都是同步。即:解析请求、业务处理、响应结果在同一个线程中。如下步骤:step1:Tomcat解析请求,返回请求对象、响应对象;step2:Servlet处理业务;step3:响应处理结果Servlet3后规范中,可以启动异步上下文(默认同步),业务可以通过线程池处理,达到请求解析与业务处理线程池分离,如下图所示:二、实现实例1. 创建线程池并处理业务注意...原创 2021-10-21 10:44:38 · 303 阅读 · 0 评论 -
Hystrix实现线程隔离
一、Hystrix目的隔离:防止服务级联失败;业务处理隔离(没有远程调用)熔断:超时、失败率、信号量降解:返回托底数据二、Hystrix原理1. 执行流程标题step1:每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中。step2:执行execute()/queue做同步或异步调用。step3:判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤8,进行降级策略,如果关闭进入步骤。step4:判断线程池/队列/...原创 2021-10-19 21:26:35 · 1854 阅读 · 0 评论 -
Gateway网关限流
一、常见限流场景缓存、降级、限流被称为高并发、分布式系统中经常提及的话题。这里讨论网关限流。1.1 限流对象a):请求频率限流(Request rate limiting):限制某个接口的一分钟内的请求数b):并发量限流(Concurrent requests limiting):限制某个服务的处理请求数c):传输速率限流(Transmission rate limiting):限制下载文件速率d):限制黑名单用户访问e):限制某个IP请求1.2 限流的处理a):拒绝服务原创 2021-05-21 21:21:30 · 6986 阅读 · 4 评论 -
Ribbon的负载均衡策略
一、Ribbon负载均衡如上图所示,负载均衡就是避免单个服务的实例处理大批量请求而导致其他实例空闲,造成资源浪费。负载均衡分为客户端、服务端的负载均衡,它们最大的区别在于维护服务器的清单保存的位置不同,如:Ribbon属于客户端负载均衡,客户端根据注册中心的服务实例的状态,判定是否访问某个实例。那么判定访问哪个实例,就是负载均衡策略要做的事。Ribbon的负载均衡有三个主要接口:com.netflix.loadbalancer.IPing(服务的检测)、com.netflix.loadbalance原创 2021-04-01 17:11:05 · 2741 阅读 · 0 评论 -
SpringCloud的超时配置和Hystrix的作用
一、SpringCloud超时配置参数1.1 ribbon配置参数# ribbon配置ribbon: OkToRetryOnAllOperations: false # 所有请求重试,默认false ReadTimeout: 3000 # 负载均衡超时时间,默认值5000ms ConnectTimeout: 1000 # 请求连接的超时时间,默认值2000ms MaxAutoRetries: 0 # 当原创 2021-03-25 22:07:34 · 352 阅读 · 0 评论