当时服务器有限,如果同时多个人去创建任务 es做聚合导致内存不够,然后通过慢调用控制熔断!!! hystrix停止更新维护 不可动态配置 Hystrix常用的线程池隔离会造成线程上下切换的overhead比较大;Hystrix使用的信号量隔离对某个资源调用的并发数进行控制,效果不错,但是无法对慢调用进行自动降级;Sentinel通过并发线程数的流量控制提供信号量隔离的功能; feign.hystrix.enabled=true fallback方法的返回值一般是设置的默认值或者来自缓存!! @FeignClient(name= "spring-cloud-producer",fallback = HelloRemoteHystrix.class) @HystrixCommand(fallbackMethod="test") 加在方法上!! 调用超过一定时间就返回 核心无降级业务!!!! 边缘业务或者可降级的业务 保护后端的es集群!!!!做聚合,生成报告!!!! hystrix为每个fegin服务都分配了线程池,这样服务间调用就不会影响!!!!!!, 之前多个服务是共用一个 请求错误比率来熔断 同一个接口次数超过设定阈值并且错误比例超过设置错误阈值时候 当5秒内失败的次数达到20次就会触发熔断 5s后在半熔断状态!!! Closed:熔断器关闭状态,调用失败次数积累,到了阈值(或一定比例)则启动熔断机制 Open:熔断器打开状态,此时对下游的调用都内部直接返回错误!!,不走网络,请求不到线程池,但设计了一个时钟选项,默认的时钟达到了一定时间,到了这个时间,进入半熔断状态; Half-Open:半熔断状态,允许定量的服务请求,如果调用都成功(或一定比例)则认为恢复了,关闭熔断器,否则认为还没好,又回到熔断器打开状态; hystrix-dashboard2018停止维护了图形界面可以看到线程池状态 每个请求的成功数 熔断数 三把利器用来保护系统:缓存、降级和限流 服务熔断一般是某个服务(下游服务)故障引起,自动触发 而服务降级一般是从整体负荷考虑;人工干预,开关预置、配置中心,把无关接口服务降级不可用,让出资源错开高峰 有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流。 对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级 java -jar sentinel-dashboard-1.7.0.jar 高并发场景下,服务器可能会因为爆炸性的流量冲击导致拒绝服务,甚至整个服务集群都会因为出现雪崩效益而大面积宕机 或者服务挂掉!!提供良好的返回 Sentinel支持的熔断降级维度更多,可对多种指标进行流控、熔断,且提供了实时监控和控制面板,功能更为强大 限流 就是超过一定qps !!@SentinelResource(value = "byResource", blockHandler = "handleException") 熔断 #打开sentinel对feign的支持feign:sentinel:enabled: true fallback 将规则持久化到nacoscom.alibaba.cloud spring-cloud-starter-alibaba-sentinel2.2.0.RELEASE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)