微服务--服务保护机制

2018-11-14  本文已影响0人  曦夫

1.熔断机制

1.是什么?

在微服务中,在访问某一目标服务并发量超过该应用的上限,服务请求堵塞,导致其他依赖服务无法被使用,最后系统崩溃(雪崩效应),而在此时对服务执行隔离或拒绝访问,等待服务恢复的一种保护手段。

2.实现-断路器模式

将受保护的服务对象封装在一个可以监控故障的断路器对象中,当故障达到一定门限时,断路器将跳闸,所有后续调用将不会发往受保护的服务,由断路器对象进行处理,返回错误消息。

3.应用场景(目的)

1.阻止应用反复尝试可能失败的操作
2.提高服务的可用性和容错性

4.断路器工作原理

1.代理维护着一段时间内请求某个服务请求的失败次数(故障计数器),当改次数超过指定的阈值,代理被打开并接管请求的处理。
2.代理被打开后,熔断机制启动,此时代理启动一个超时定时器,当熔断时间超过这个时间后,代理会变成半开状态
3.超时计时器:为了让系统有时间解决导致失败的问题,然后再允许应用程序执行再次尝试访问操作。

来自应用程序的请求失败,将异常返回给应用程序。

1.当代理进入该状态,会允许有限数量的请求访问,若请求成功,即认为故障已清除,熔断器切换至关闭状态,故障计数器重置。
2.若有任何请求失败,则熔断器切换至打开状态,超时计时器从新启动。
3.当服务恢复时,可能能够支持有限请求量,直至恢复完成,所以在进行恢复的期间,大量请求可能导致服务超时或再次失败。

系统恢复的方式:可以通过恢复或重启故障组件或修复网络连接来进行外部处理。

5.熔断模式与重试模式

1.瞬时故障
慢的网络连接,超时,资源过度使用导致暂时不可用
2.不可预见突发故障
程序隐藏bug,机器出问题等

1.对于瞬时故障,可以通过重试模式来解决
2.断路器模式

1.重试模式在程序可以预见成功的情况下使用
2.断路器模式阻止应用程序执行可能的失败
3.两者可以结合使用。

2.降级机制

1.是什么?

当某一服务出现堵塞时 ,根据不同服务的业务的层级,采取关闭或处理一些不重要的服务,来缓解服务器压力,留出更多的服务器资源,保证核心服务能够顺利完成。降级操作可能需要人工干预。

2.熔断与降级的区别

1.熔断一般是某个服务发生故障引起的,而服务降级是从整体的负荷考虑的。
2.熔断是对服务的一种保护的处理手段,服务间并没有层级之分,而降级服务是根据业务逻辑的的重要性划分层级的,而降级一般从最外围服务开始。

上一篇下一篇

猜你喜欢

热点阅读