网站管理问题,外贸五金网站建设,成都网站内容策划,个人网页设计风格分析导航一、什么是服务雪崩二、雪崩效应的三个核心原因三、容错四、业界常见容错思路五、常见容错组件一、什么是服务雪崩
服务雪崩 指的是微服务架构中#xff0c;微服务各节点之间由于网络通信异常或微服务自身故障等问题#xff0c;导致请求堆积、任务堆积#xff0c;消耗和…
导航一、什么是服务雪崩二、雪崩效应的三个核心原因三、容错四、业界常见容错思路五、常见容错组件一、什么是服务雪崩
服务雪崩 指的是微服务架构中微服务各节点之间由于网络通信异常或微服务自身故障等问题导致请求堆积、任务堆积消耗和占用容器线程并由此而影响其他正常业务流程以及其他微服务节点局部故障扩散为整体故障的一种现象严重时可能导致整个系统瘫痪就行“雪崩”一样。 二、雪崩效应的三个核心原因 被上游服务压垮 tomcat 在处理请求时会分配线程资源但这个资源是有限的默认的 tomcat 线程数是 200可以通过 server.tomcat.max-threads 参数设置。但如果上游服务在某一时刻发来大量的请求一度超过当前节点可以处理的请求数量就可能会导致节点故障引发雪崩。常见的解决办法是限流。 被下游服务拖垮 由于下游服务的响应过慢导致服务堆积从而拖慢了当前节点的处理节奏积小成多造成雪崩。 常见的解决办法是增加超时机制、熔断、降级等。 外部环境影响 当前节点所处的服务器环境如内存、cpu等同样可能影响当前节点的处理速度。
三、容错
服务故障不可避免但是决不能因为局部故障导致大面积的服务瘫痪容错是为了通过某些手段尽可能的减小发生故障的概率以及就算发生了故障也不至于扩散开来目的是提高整体微服务架构的可用性做到“雪落而不雪崩”。
上面提到的 限流、熔断、降级等都是容错的常见措施。
四、业界常见容错思路 隔离 指的是在服务内部对一些业务进行划分尽量减少故障线程耗尽所有服务线程资源。 常见的隔离手段有线程池隔离、信号量隔离。 超时 设置最大响应时间避免线程资源占用过久。 限流 限制请求的数量一旦达到阈值就拒绝额外的请求进入服务保护服务节点的正常、平稳的运行。 熔断 当下游服务因为访问压力过大而响应变慢或失败上游服务为了保护系统整体可用性可以暂时切断对下游服务的调用即牺牲局部保全整体。 熔断分为三种状态关闭、开启、半熔断。关闭服务没有故障时熔断器所处的状态对调用方的调用无任何限制开启后续对该接口的调用不再经过网络直接执行本地的 fallback 方法半熔断尝试恢复服务调用允许有限的流量调用该服务并监控调用成功率如果达到预期进入熔断关闭状态若未达预期则重新进入开启状态。 降级 托底方案如果微服务调用失败如超时就执行降级方案。
五、常见容错组件
Sentinel、Hystrix、Resilience4j