栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Histrix

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Histrix

微服务项目中,微服务得服务负载过高,导致运行性能下降,会导致其他调用他们得链条出现问题,从而所有得项目都可以出现问题,这种情况下称之为灾难性得雪崩效应。

造成雪崩得击穿:服务提供者不可用:硬件故障,程序bug,缓存击穿,并发请求量过大..

重试加大流量:用户重试,代码充实逻辑等

服务调用者不可用:同步请求阻塞造成得资源耗尽等。

雪崩效应造成得结果就是:服务链条中某一个服务不可用,导致一系列得服务不可用,最终造成服务逻辑崩溃。

如何防止?

降级

超时降级,资源不足时降级,降级后可以配合降级接口返回拖底数据,实现一个fallback方法,当请求后端服务出现问题得时候,可用使用fallback返回得值。

保证服务出现问题整个项目还可以继续运行。

熔断

当失败率达到一个阈值就自动触发降级,熔断器触发的快速失败会进行快速恢复。熔断和降级使用的是同一个注解。

熔断自动恢复机制:当熔断启动后,每隔5秒,常识新的请求发送给Application Service 如果服务器还可以正常运行并返回觉果,则关闭熔断器,服务恢复,如果仍调用失败,就继续返回拖地数据,熔断器持续开启状态。

保证了服务出现问题整个项目还可以继续运行。

降级是出错了返回拖地数据,熔断是出错后开启熔断将不再访问application service。

请求缓存

提供了请求缓存,服务A调用服务B,如果A中添加了请求缓存,第一次请求后走缓存了,就不在访问服务B,即使出现大量请求时,也不会对B产生高负载。

请求缓存,可用使用Spring Cache实现

保证减少对Application Service的调用。

请求合并

提供请求合并,当服务A调用服务B时,设定在5毫秒内所有请求合并到一起,对于服务B的负载就会大大减少,解决了对于服务B负载激增的问题。返回值必须是Future类型才能进行合并。

保证了减少对Application Service的调用。

隔离

隔离分为线程池隔离和信号量隔离,通过判断线程池或信号量是否已满,超出容量的请求直接降级,达到限流的作用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328185.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号