由于直播内容是实时产生实时消费的,所以直播软件源码对实时性的要求会比较高,但随着用户数量的不断增加,保证直播软件源码实时性的难度也在不断增加,为了保证大规模分发场景下直播内容的实时性,在开发直播软件源码时需构建好调度系统。
在直播软件源码中调度系统的主要作用是通过收集、整合各种信息对直播接入和寻路进行控制,以选择出质量、成本较好的传输链路和策略。在构建调度系统时我们会面临哪些挑战呢?
一、时效性挑战
在直播软件源码开发中,保证时效性的主要措施有两种:
1、调度延迟控制
为实现调度延迟控制需要实现以下三个功能:
(1)策略推送
主要是指资源调度系统在生成完调度策略后,利用推送方式将其推送至接入层,然后接入层再利用推送方式将调度计划返回至业务方,以此来对调度延迟进行控制。
(2)策略缓存
主要是指直播软件源码的接入层在接收到推送调度计划后缓存至内存中,当有调度请求发起时直接返回缓存数据,以此降低调度延迟。
(3)异步更新
主要是指接口会主动定时的向资源调度系统发起请求获取调度数据。
2、信息同步延迟控制
在直播软件源码构建的调度系统中,流媒体信息同步延迟需要控制在100ms以内,所以通常会采用事件触发实时API上报的方式实现数据同步,然后再采用任务分派机制防止数据重复取回。
二、可用性挑战
1、接口可用性
为保证接口可用性,可采用以下几种策略:
(1)隔离
在直播软件源码中,隔离分为用户隔离和业务隔离两种,用户隔离维度通常以id和域名为主,业务隔离维度通常以业务方为主。
(2)限流
所谓的限流其实就是在系统负载过高时,对系统中的业务流量进行限制,以此来保护系统服务。
(3)熔断
在直播软件源码中常用的熔断策略有两种,分别是并发熔断和失败率熔断。
2、退化策略
所谓的退化策略是指当接入和询源调度服务无法进入时,退化为默认的兜底策略,不再依赖调度系统做策略选择。
在直播软件源码中构建调度系统可以保证大规模分发场景下直播内容的实时性,让用户获得更好的使用体验,但对于开发者而言需面对的挑战会比较大,只有采取合适的策略解决各种挑战才能保证直播软件源码的开发质量。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.cn