短视频开发,高并发下系统服务的自我保护机制

简介: 短视频开发,高并发下系统服务的自我保护机制

在某些情况下用户的访问流量是无法预估的,如果访问流量超过了系统的可承载范围,极有可能会导致系统的不可用,为避免该情况,在短视频开发时,需要做好高并发场景下的系统服务自我保护机制。

一、限流

1、被动限流

在短视频开发中我们可以通过定义阈值和规则、自适应限流策略等方式进行系统承载能力的衡量:

(1)定义阈值和规则:该方式需要根据人工经验定制,所以灵活性不高,而且对请求反馈的灵敏度和资源的利用率也不够。

(2)自适应策略:该方式是一种动态限流策略,可根据系统单签的运行情况,动态地进行限流阈值的调整,使用起来更灵活。

2、主动限流

由于短视频开发的绝大部分业务系统间存在着依赖关系,所以系统间的处理能力会互相受到影响,此时可将集群限流和单机限流配合起来使用,以达到主动限流的目的。

二、降级

降级是一种比较直接、暴力的自我保护机制,所谓的降级主要是指当短视频开发的整个业务处于高峰期或活动脉冲期时,通过牺牲一些非核心功能来保证核心功能的可用性。在短视频开发中常用的降级方案有:

1、页面降级:主要是指从用户操作页面进行操作,直接限制和阶段某功能的入口。

2、存储降级:主要是指利用缓存来降级频繁操作的存储。

3、度降级:对于短视频开发中的非核心信息的读请求禁用。

4、写降级:直接禁止相关写操作的服务请求。

三、熔断

熔断在短视频开发中可以直接解决级联故障和服务雪崩,是一种比较强效的自我保护机制。

在分布环境中,当下游服务发生异常后,上游服务中就会出现请求超时和调用延迟的情况,而积压的大量请求和调用会不断消耗系统资源,直到系统资源被耗尽发生服务雪崩。

针对该情况我们就可以采取熔断策略,直接停止对下游的调用,并不断检测下游接口是否恢复。

在短视频开发中高并发是一个老生常谈的问题,为应对该问题开发者们也研究出了诸多方案,建立系统服务的自我保护机制就是其一,只有灵活使用这些方案,才能保证系统的高可用,才能让用户获得稳定、持续的高质量服务。

声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权

 

相关文章
|
4月前
|
消息中间件 算法 数据库
架构设计篇问题之商城系统高并发写的问题如何解决
架构设计篇问题之商城系统高并发写的问题如何解决
|
1月前
|
Java Go 云计算
Go语言在云计算和高并发系统中的卓越表现
【10月更文挑战第10天】Go语言在云计算和高并发系统中的卓越表现
|
3月前
|
存储 监控 Java
近亿级用户体量高并发实战:大促前压测干崩近百个服务引起的深度反思!
几年前,数百个服务,将堆内存从28GB升配到36GB,引发系统全面OOM的事件。
104 12
|
3月前
|
监控 算法 Java
企业应用面临高并发等挑战,优化Java后台系统性能至关重要
随着互联网技术的发展,企业应用面临高并发等挑战,优化Java后台系统性能至关重要。本文提供三大技巧:1)优化JVM,如选用合适版本(如OpenJDK 11)、调整参数(如使用G1垃圾收集器)及监控性能;2)优化代码与算法,减少对象创建、合理使用集合及采用高效算法(如快速排序);3)数据库优化,包括索引、查询及分页策略改进,全面提升系统效能。
50 0
|
4月前
|
负载均衡 微服务
微服务06----Eureka注册中心,微服务的两大服务,订单服务和用户服务,订单服务需要远程调用我们的用,户服务,消费者,如果环境改变,硬编码问题就会随之产生,为了应对高并发,我们可能会部署成一个集
微服务06----Eureka注册中心,微服务的两大服务,订单服务和用户服务,订单服务需要远程调用我们的用,户服务,消费者,如果环境改变,硬编码问题就会随之产生,为了应对高并发,我们可能会部署成一个集
|
4月前
|
消息中间件 缓存 监控
如何设计一个秒杀系统,(高并发高可用分布式集群)
【7月更文挑战第4天】设计一个高并发、高可用的分布式秒杀系统是一个非常具有挑战性的任务,需要从架构、数据库、缓存、并发控制、降级限流等多个维度进行考虑。
136 1
|
4月前
|
设计模式 存储 缓存
Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
58 0
|
4月前
|
存储 安全 Java
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
71 0
|
4月前
|
缓存 Java 数据库连接
使用Java构建一个高并发的网络服务
使用Java构建一个高并发的网络服务
|
6月前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
下一篇
无影云桌面