当一对一源码面临流量激增场景,且软硬件的优化已达到瓶颈时,为了保证服务的可用性,通常采取的手段就是将系统资源倾斜给核心业务,降低非核心业务对系统资源的占用,甚至直接放弃非核心业务,这就是一对一源码中的服务降级处理。
一、限流降级
该降级类型主要针对一对一源码中的用户访问,在开发时,提前对各个类型的请求设置最好的每秒查询率阈值,对于超过阈值的请求就进行直接返回处理,不再调用后续资源。通过放弃一部分用户请求来保证大多数用户的正常使用体验。
二、超时降级
该降级类型主要针对的是一对一源码中被调用的数据,在开发时,可以对调用的数据设置超时时间,当某个非核心业务调用某数据失败且超过访问时效时,就对该业务进行降级处理。
三、故障降级
该降级类型主要针对的是一对一源码中的服务器,如果在远程调用中服务器出现了网络故障、DNS故障等,则可以进行降级处理,通过返回兜底数据或静态页面的方式优化用户体验。
当一对一源码中的服务器出现故障,可以通过自动重试机制恢复服务,包含客户端重试、API调用重试、Web端重试等。在实现自动重试机制时,要注意设置重试次数和数据幂等处理。
四、前端降级
主要是指当一对一源码出现问题时,将请求隔离至离用户最近的位置,避免无效链路的访问,然后等到后端服务部分或完全不可用时,可以通过使用兜底数据或本地缓存,为用户提供服务,甚至还可以做一些假数据应用在对数据一致性要求不高的场景中。
在一对一源码开发中,前端降级包含JS降级、接入层降级、应用层降级等:
1、JS降级主要控制的是页面功能的降级。
2、接入层降级主要控制的是请求入口的降级。
3、应用层降级主要控制的是一对一源码中业务的降级。
五、片段降级
主要是指当一对一源码进行内容加载时,将没有请求到的部分内容进行片段降级处理,通过不加载该部分内容的方式,保证系统的可用性,优化用户的使用体验。
其实服务降级是一种保证一对一源码可用性的兜底措施,尽管经过服务降级保证了核心业务的可用性,但仍旧牺牲了部分非核心业务,也就是同样会影响一小部分用户的使用体验。不过,总的来说,在一对一源码中实现服务降级还是利大于弊。
声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权