
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了微服务架构开发的一些基础知识等内容,而本文我们就继续来学习一下,服务容灾解决方案与作用分析。
1、服务容灾的几种解决方案
服务隔离:即舱壁模式。将系统按照一定的原则划分为若干个服务模块,各个模块之间相对独立,无强依赖。常见的隔离方式有:线程池隔离和信号量隔离;
服务超时:在上游服务调用下游服务的时候,设置一个大响应时间,如果超过这个时间,下游未作出反应,就断开请求,释放线程;
服务降级:即后备模式。服务提供一个托底方案,一旦服务无法正常调用,就使用托底方案;
服务熔断:即断路器。上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。一种“牺牲局部,保全整体”的策略;
服务限流:限制系统的输入和输出流量已达到保护系统的目的;
2、服务降级的参考指标
服务降级需要有一个参考指标,一般来说有以下几种常见方案;
平均响应时间:比如15内持续进入5个请求,对应时刻的平均响应时间均超过阈值,那么接下来在一个固定的时间窗口内,对这个方法的访问都会自动熔断;
异常比例:当某个方法每秒调用所获得的异常总数的比例超过设定的阈值时,该资源会自动进入降级状态,也就是在接下来的一个固定时间窗口中,对这个方法的调用都会自动返回;
异常数量:和异常比例类似,当某个方法在指定时间窗口内获得的异常数量超过闽值时会触发熔断;
3、服务限流的作用
限流的主要目的是通过限制并发访问数或者限制一个时间窗口内允许处理的请求数量来保护系统,一旦达到限制数量则对当前请求进行处理采取对应的拒绝策略,比如跳转到错误页面拒绝请求、进入排队系统、降级等;
从本质上来说,限流的主要作用是损失一部分用户的可用性,为大部分用户提供稳定可靠的服务;
实际开发中的限流应用:
在Nginx层添加限流模块限制平均访问速度;
通过设置数据库连接池、线程池的大小来限制总的并发数;
通过Guava提供的Ratelimiter限制接口的访问速度;
TCP通信协议中的流量整形;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。