直播推流地址分配方法及系统与流程

文档序号:27392932发布日期:2021-11-15 22:33阅读:208来源:国知局
直播推流地址分配方法及系统与流程

1.本技术涉及直播技术领域,尤其涉及一种直播推流地址分配方法、系统、电子装置及计算机可读存储介质。


背景技术:

2.在现有直播体系情况下,主播推流前需要向中心服务请求获取推流节点。中心服务定期收集所有边缘计算节点(推流节点)心跳上报的信息(报告自己依然正常服务服务中),经过判断后确认为正常运行的节点,才会调度给主播使用。因此,推流节点的运行状态正常与否成为至关重要的信息。但是,这种技术架构对中心服务依赖性大,且延迟性高,就近性也无法保障。


技术实现要素:

3.本技术的主要目的在于提出一种直播推流地址分配方法、系统、电子装置及计算机可读存储介质,旨在解决如何在推流时降低对中心服务的依赖,同时兼顾时效性和就近性的问题。
4.为实现上述目的,本技术实施例提供了一种直播推流地址分配方法,应用于开播服务节点,所述方法包括:
5.接收主播客户端发送的第一推流地址请求;
6.获取边缘探测服务节点和中心服务节点的运行状态;
7.当所述边缘探测服务节点运行正常时,将所述边缘探测节点的ip地址返回给所述主播客户端,以使所述边缘探测节点在收到所述主播客户端发送的第二推流地址请求后,根据所绑定的边缘计算节点的运行状态为所述主播客户端分配边缘计算节点的ip地址;及
8.当所述边缘探测服务节点运行异常时,将所述中心服务节点的ip地址返回给所述主播客户端,以使所述中心服务节点在收到所述主播客户端发送的第二推流地址请求后,根据所有边缘计算节点上报的心跳信息和与所述主播客户端之间的距离为所述主播客户端分配边缘计算节点的ip地址。
9.可选地,每个所述边缘计算节点绑定一个所述边缘探测服务节点,部署在同一位置;或者所述边缘计算节点中附加一个边缘探测服务模块,作为所述边缘探测服务节点。
10.可选地,所述边缘探测服务节点运行正常包括在预定范围内存在运行正常的至少一个边缘探测服务节点。
11.可选地,所述将所述边缘探测节点的ip地址返回给所述主播客户端包括:
12.将所述预定范围内的所有运行正常的边缘探测服务节点的ip地址列表返回给所述主播客户端,以使所述主播客户端从所述ip地址列表中选择任意一个所述边缘探测服务节点发送所述第二推流地址请求。
13.此外,为实现上述目的,本技术实施例还提供一种直播推流地址分配系统,应用于开播服务节点,所述系统包括:
14.接收模块,用于接收主播客户端发送的第一推流地址请求;
15.获取模块,用于获取边缘探测服务节点和中心服务节点的运行状态;
16.调度模块,用于当所述边缘探测服务节点运行正常时,将所述边缘探测节点的ip地址返回给所述主播客户端,以使所述边缘探测节点在收到所述主播客户端发送的第二推流地址请求后,根据所绑定的边缘计算节点的运行状态为所述主播客户端分配边缘计算节点的ip地址;
17.所述调度模块,还用于当所述边缘探测服务节点运行异常时,将所述中心服务节点的ip地址返回给所述主播客户端,以使所述中心服务节点在收到所述主播客户端发送的第二推流地址请求后,根据所有边缘计算节点上报的心跳信息和与所述主播客户端之间的距离为所述主播客户端分配边缘计算节点的ip地址。
18.为实现上述目的,本技术实施例还提供另一种直播推流地址分配方法,应用于边缘探测服务节点,所述方法包括:
19.接收主播客户端发送的第二推流地址请求;
20.探测所绑定的第一边缘计算节点的运行状态;
21.当所述主播客户端与所述边缘探测服务节点之间的距离小于等于预设阈值且所述第一边缘计算节点运行正常时,将所述第一边缘计算节点的ip地址返回给所述主播客户端;及
22.当所述主播客户端与所述边缘探测服务节点之间的距离大于所述阈值或所述第一边缘计算节点运行异常时,从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端。
23.可选地,所述探测所绑定的第一边缘计算节点的运行状态包括:
24.所述边缘探测服务节点实时主动向绑定的所述第一边缘计算节点发送探测信息,并判断是否收到回复信息;
25.当所述边缘探测服务节点在预设时段内收到所述第一边缘计算节点发送的回复信息时,判断所述第一边缘计算节点运行正常,否则判断所述第一边缘计算节点运行异常。
26.可选地,所述从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端包括:
27.获取所有边缘计算节点的运行状态及位置;
28.从所有运行正常的边缘计算节点中选择一个与所述主播客户端的距离最近的第二边缘计算节点;
29.将所述第二边缘计算节点的ip地址返回给所述主播客户端。
30.可选地,所述获取所有边缘计算节点的运行状态及位置包括:
31.每个所述边缘探测服务节点之间使用raft协议相互通信,从而得到所有所述边缘计算节点的运行状态及位置信息。
32.为实现上述目的,本技术实施例还提供另一种直播推流地址分配系统,应用于边缘探测服务节点,所述系统包括:
33.接收模块,用于接收主播客户端发送的第二推流地址请求;
34.探测模块,用于探测所绑定的第一边缘计算节点的运行状态;
35.分配模块,用于当所述主播客户端与所述边缘探测服务节点之间的距离小于等于
预设阈值且所述第一边缘计算节点运行正常时,将所述第一边缘计算节点的ip地址返回给所述主播客户端;
36.所述分配模块,还用于当所述主播客户端与所述边缘探测服务节点之间的距离大于所述阈值或所述第一边缘计算节点运行异常时,从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端。
37.为实现上述目的,本技术实施例还提供另一种直播推流地址分配方法,应用于边缘计算节点,所述边缘计算节点具有边缘探测服务模块,所述方法包括:
38.所述边缘探测服务模块接收主播客户端发送的第二推流地址请求;
39.探测所述边缘计算节点的运行状态;
40.当所述主播客户端与所述边缘计算节点之间的距离小于等于预设阈值且所述边缘计算节点运行正常时,将所述边缘计算节点的ip地址返回给所述主播客户端;及
41.当所述主播客户端与所述边缘计算节点之间的距离大于所述阈值或所述边缘计算节点运行异常时,探测其他边缘计算节点的运行状态,并从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端。
42.可选地,所述探测其他边缘计算节点的运行状态包括:
43.使用raft协议与其他边缘计算节点绑定的边缘探测服务节点或其他边缘计算节点中的边缘探测服务模块之间相互通信,得到所述其他边缘计算节点的运行状态。
44.为实现上述目的,本技术实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的直播推流地址分配程序,所述直播推流地址分配程序被所述处理器执行时实现如上述的直播推流地址分配方法。
45.为实现上述目的,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有直播推流地址分配程序,所述直播推流地址分配程序被处理器执行时实现如上述的直播推流地址分配方法。
46.本技术实施例提出的直播推流地址分配方法、系统、电子装置及计算机可读存储介质,可以在现有直播体系框架的基础上新增边缘探测服务节点,在边缘探测服务节点运行正常的情况下,优先使用边缘探测服务节点完成对边缘计算节点的探活和调度,在边缘探测服务节点运行异常时再重新使用中心服务调度,从而通过双层机制保障流服务的可用性,保证流用户的推流稳定性。
47.并且,由于每个边缘计算节点都附带部署所述边缘探测服务节点,所述边缘探测服务节点实时主动向所绑定的边缘计算节点探测,且每个边缘探测服务节点之间相互通信,都具有所有边缘计算节点的信息,以此方式完成边缘探测,可以解决延迟问题。
48.另外,由于边缘探测服务节点优先将所绑定的边缘计算节点分配给主播,在异常情况下则分配距离主播最近的其他正常的边缘计算节点,采用就近原则,有效地降低了链路传输距离,保障传输效率和质量。
附图说明
49.图1为实现本技术各个实施例的一种应用环境架构图;
50.图2为本技术第一实施例提出的一种直播推流地址分配方法的流程图;
51.图3为本技术第二实施例提出的一种直播推流地址分配方法的流程图;
52.图4为图3中步骤s306的细化流程示意图;
53.图5为本技术第三实施例提出的一种直播推流地址分配方法的流程图;
54.图6为本技术第四实施例提出的一种电子装置的硬件架构示意图;
55.图7为本技术第五实施例提出的一种直播推流地址分配系统的模块示意图;
56.图8为本技术第六实施例提出的一种直播推流地址分配系统的模块示意图。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
59.请参阅图1,图1为实现本技术各个实施例的一种应用环境架构图。本技术可应用于包括,但不仅限于开播服务节点2、中心服务节点4、边缘探测服务节点6和边缘计算节点8的应用环境中。
60.在现有直播体系中,主播推流前均需要向中心服务请求获取推流节点(边缘计算节点),而这种技术架构存在以下问题:
61.(1)对中心服务依赖性大:中心服务是部署在固定机房的,若固定机房的服务出现了问题,将影响主播获取推流节点,影响所有主播推流。
62.(2)延迟性高:由于边缘计算节点是定时上报心跳,假设边缘计算节点在前一次上报结束而下次上报未开始的过程中服务不可用,若主播此时正好向中心服务请求推流节点,则中心服务有可能将有问题的边缘计算节点调度出去,导致主播不可推流。
63.(3)就近性无法保障:由于每个边缘计算节点之间并不相互通信,双方并不知道对方的位置。若中心服务分配的边缘计算节点距离主播较远,而边缘计算节点本身只能接受推流,则主播需要跨越较长的传输链路进行推流。而长链路传输会影响传输的效率,一定程度上降低流的质量,导致用户观看卡顿。
64.因此,基于上述问题,本技术部署了包括开播服务节点2、中心服务节点4、边缘探测服务节点6和边缘计算节点8在内的新的技术架构。
65.在本技术各个实施例中,所述边缘计算节点8为部署在全国各地的小型推流节点,成本较低。每个所述边缘计算节点8绑定一个边缘探测服务节点6(部署在一起,例如同一个机房),所述边缘探测服务节点6实时主动向绑定的所述边缘计算节点8发送探测信息,判断是否收到回复信息。若收到回复信息,则表示所述边缘计算节点8运行正常,否则所述边缘计算节点8运行异常。并且,各个边缘探测服务节点6之间使用raft协议相互通信,从而使每个边缘探测服务节点6拥有所有边缘计算节点8的信息和彼此之间的位置。所述raft协议是
一种分布式一致性协议,通过算法实现加入该网络中的每个节点,均具有所有节点信息。
66.可以理解,所述边缘探测服务节点6除了可以是独立节点外,也可以是附加在所述边缘计算节点8中的边缘探测服务模块,执行与上述独立的边缘探测服务节点类似的功能。
67.所述开播服务节点2用于接收主播在开播前发送的推流地址请求,然后根据边缘探测服务节点6和中心服务节点4的运行状态,判断到底返回哪个地址,即在开播时负责进行切换输入源。当边缘探测服务节点6运行正常时,优先将边缘探测服务节点6的地址返回给主播,否则返回中心服务节点4的地址。
68.若主播收到边缘探测服务节点6的地址,向边缘探测服务节点6再发送推流地址请求。边缘探测服务节点6若发现主播的位置和自己的地址距离很近,且自己所绑定的边缘计算节点8(例如节点a)运行正常,则直接将该边缘计算节点8(节点a)的ip地址返回给主播,主播直接向该边缘计算节点8(节点a)进行推流。若边缘探测服务节点6发现主播的位置和自己的地址距离很远,则从所有边缘计算节点8中选择一个离主播位置最近的边缘计算节点8(例如节点c),将该边缘计算节点8(节点c)的ip地址返回给主播,主播向该边缘计算节点8(节点c)进行推流。
69.若主播收到中心服务节点4的地址,向中心服务节点4再发送推流地址请求。每个边缘计算节点8定时向中心服务节点4(一般部署在固定机房,和边缘计算节点8在不同地方)上报心跳信息。中心服务节点4收到主播的推流地址请求后,从最近一定时间周期内有心跳上报(即运行正常)的边缘计算节点8中,选择一个离主播位置最近的边缘计算节点8(例如节点d),将该边缘计算节点8(节点d)的ip地址分配给主播,主播向该边缘计算节点8(节点d)进行推流。
70.所述开播服务节点2、中心服务节点4、边缘探测服务节点6和边缘计算节点8等电子装置之间通过有线或无线网络通信连接,以进行数据传输和交互。
71.实施例一
72.如图2所示,为本技术第一实施例提出的一种直播推流地址分配方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以开播服务节点2作为执行主体对该方法进行说明。
73.该方法包括以下步骤:
74.s200,接收主播客户端发送的第一推流地址请求。
75.主播在开播前需要先请求获取推流节点。在本实施例中,主播推流的调度有两种模式,一种是中心调度,即由中心服务节点向主播客户端分配合适的边缘计算节点进行推流;还有一种是边缘探测服务,即由边缘探测服务节点向主播客户端分配合适的边缘计算节点进行推流。
76.主播客户端向开播服务节点发送第一推流地址请求(请求中心服务节点或边缘探测服务节点的ip地址)。开播服务节点接收到该请求后,后续根据边缘探测服务节点和中心服务节点的运行状态,判断到底返回哪个地址。
77.而主播只有在向中心服务节点或者边缘探测服务节点发送第二推流地址请求后,才能接收到真实推流ip(边缘计算节点的ip地址),从而进行推流。
78.s202,获取边缘探测服务节点和中心服务节点的运行状态。
79.开播服务节点在收到所述第一推流地址请求后,为了判断究竟为所述主播客户端分配哪一个地址,需要先获取边缘探测服务节点和中心服务节点的运行状态。在本实施例中,对边缘探测服务节点和中心服务节点的运行状态的判断依据是这两个服务是否可用,例如是否发生无法访问的情况。一般采用的方式为向边缘探测服务节点或中心服务节点发送探活信息,判断是否有回应,若收到回应信息则表示运行状态正常。
80.s204,当所述边缘探测服务节点运行正常时,将所述边缘探测节点的ip地址返回给所述主播客户端。
81.在本实施例中,对于中心调度和边缘探测服务这两种模式,优先考虑边缘探测服务这种模式,这样的处理方式可以降低对中心服务节点的依赖。因此,当开播服务节点获取到边缘探测服务节点的运行状态为正常时,优先将所述边缘探测服务节点的ip地址返回给所述主播客户端,以使所述边缘探测节点在收到所述主播客户端发送的第二推流地址请求后,根据所绑定的边缘计算节点的运行状态为所述主播客户端分配边缘计算节点的ip地址。
82.具体而言,所述主播客户端收到所述边缘探测服务节点的ip地址后,向所述边缘探测服务节点发送第二推流地址请求。所述边缘探测服务节点若发现所述主播客户端的位置和自己的地址距离很近(小于等于预设阈值),且自己所绑定的边缘计算节点(例如节点a)运行正常,则直接将该边缘计算节点(节点a)的ip地址返回给主播客户端,主播客户端向该边缘计算节点进行推流。
83.若所述边缘探测服务节点发现所述主播客户端的位置和自己的地址距离很远(大于阈值),则从所有边缘计算节点中选择一个离主播客户端位置最近的边缘计算节点(例如节点c),将该边缘计算节点(节点c)的ip地址返回给主播客户端,主播客户端向该边缘计算节点(节点c)进行推流。
84.值得注意的是,由于直播体系中部署有多个边缘探测服务节点,上述当所述边缘探测服务节点运行正常时,指的是(在一定范围内)存在运行正常的至少一个边缘探测服务节点。所述开播服务节点可以将(一定范围内)所有运行正常的边缘探测服务节点的ip地址列表返回给所述主播客户端,所述主播客户端从所述ip地址列表中选择任意一个(例如距离最近的)边缘探测服务节点发送所述第二推流地址请求。
85.s206,当所述边缘探测服务节点运行异常时,将所述中心服务节点的ip地址返回给所述主播客户端。
86.在本实施例中,若所述边缘探测服务节点运行状态异常,再考虑采用中心调度模式,将所述中心服务节点的ip地址返回给所述主播客户端,以使所述中心服务节点在收到所述主播客户端发送的第二推流地址请求后,根据所有边缘计算节点上报的心跳信息和与所述主播客户端之间的距离为所述主播客户端分配边缘计算节点的ip地址。
87.具体而言,所述主播客户端收到所述中心服务节点的地址后,向所述中心服务节点发送第二推流地址请求。而由于每个边缘计算节点定时向中心服务节点上报心跳信息,则中心服务节点可以通过该心跳信息判断每个边缘计算节点的运行状态。所述中心服务节点收到所述主播客户端的第二推流地址请求后,从最近一定时间周期内有心跳上报(即运行正常)的边缘计算节点中,选择一个离主播客户端位置最近的边缘计算节点(例如节点d),将该边缘计算节点(节点d)的ip地址分配给主播客户端,主播客户端向该边缘计算节点
(节点d)进行推流。
88.由于任何实际应用场景中都无法保证边缘探测服务一定处于正常的情况,任何系统均有出现异常的可能性,因此本实施例保留中心调度模式。在正常情况下,由边缘探测服务节点来分配推流节点,而异常情况下由中心服务节点负责分配推流节点。
89.本实施例提出的直播推流地址分配方法,可以在现有直播体系框架的基础上新增边缘探测服务节点,在边缘探测服务节点运行正常的情况下,优先使用边缘探测服务节点完成对边缘计算节点的探活和调度,在边缘探测服务节点运行异常时再重新使用中心服务调度,从而通过双层机制保障流服务的可用性,保证流用户的推流稳定性。
90.并且,由于每个边缘计算节点都附带部署所述边缘探测服务节点,所述边缘探测服务节点实时主动向所绑定的边缘计算节点探测,且每个边缘探测服务节点之间相互通信,都具有所有边缘计算节点的信息,以此方式完成边缘探测,可以解决延迟问题。
91.另外,由于边缘探测服务节点优先将所绑定的边缘计算节点分配给主播,在异常情况下则分配距离主播最近的其他正常的边缘计算节点,采用就近原则,有效地降低了链路传输距离,保障传输效率和质量。
92.实施例二
93.如图3所示,为本技术第二实施例提出的一种直播推流地址分配方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以边缘探测服务节点6作为执行主体对该方法进行说明。
94.该方法包括以下步骤:
95.s300,接收主播客户端发送的第二推流地址请求。
96.所述主播客户端从所述开播服务节点中收到所述边缘探测服务节点的ip地址后,向所述边缘探测服务节点发送第二推流地址请求。
97.当存在多个运行正常的边缘探测服务节点时,所述开播服务节点将所有运行正常的边缘探测服务节点的ip地址列表返回给所述主播客户端,所述主播客户端从所述ip地址列表中选择任意一个(例如距离最近的)边缘探测服务节点发送所述第二推流地址请求。
98.s302,探测所绑定的第一边缘计算节点的运行状态。
99.在本实施例中,每个边缘计算节点绑定一个边缘探测服务节点(假设当前所述边缘探测服务节点绑定的是第一边缘计算节点)。所述边缘探测服务节点实时主动向绑定的所述第一边缘计算节点发送探测信息,并判断是否收到回复信息。若在预设时段内收到回复信息,则表示所述第一边缘计算节点运行正常,否则表示所述第一边缘计算节点运行异常。
100.本实施例将边缘计算节点运行状态的获取方式从中心调度模式中的由边缘计算节点主动定时上报,改为实时同机房探测,解决了网络传输问题和延迟问题。
101.另外,本实施例的各个边缘探测服务节点之间使用raft协议相互通信,从而使每个边缘探测服务节点可以拥有所有边缘计算节点中的信息(例如运行状态、位置等)和彼此之间(边缘探测服务节点)的位置。
102.s304,当所述主播客户端与所述边缘探测服务节点之间的距离小于等于预设阈值且所述第一边缘计算节点运行正常时,将所述第一边缘计算节点的ip地址返回给所述主播
客户端。
103.所述边缘探测服务节点若发现所述主播客户端的位置和自己的地址距离很近(小于等于预设阈值),且自己所绑定的第一边缘计算节点(例如节点a)运行正常,则直接将所述第一边缘计算节点(节点a)的ip地址返回给主播客户端,主播客户端向所述第一边缘计算节点(节点a)进行推流。
104.s306,当所述主播客户端与所述边缘探测服务节点之间的距离大于所述阈值或所述第一边缘计算节点运行异常时,从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端。
105.若所述边缘探测服务节点发现所述主播客户端的位置和自己的地址距离很远(大于阈值),或者自己所绑定的第一边缘计算节点(例如节点a)运行异常,则从所有边缘计算节点中选择一个离主播客户端位置最近的第二边缘计算节点(例如节点c),将所述第二边缘计算节点(节点c)的ip地址返回给主播客户端,主播客户端向所述第二边缘计算节点(节点c)进行推流。
106.具体而言,进一步参阅图4,为上述步骤s306的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤s306具体包括:
107.s3060,获取所有边缘计算节点的运行状态及位置。
108.由于各个边缘探测服务节点之间使用raft协议相互通信,因此所述边缘探测服务节点可以获取到所有边缘计算节点中的信息,包括运行状态、位置等。
109.s3062,从所有运行正常的边缘计算节点中选择一个与所述主播客户端的距离最近的第二边缘计算节点。
110.当所述边缘探测服务节点绑定的第一边缘计算节点运行异常时,所述边缘探测服务节点从所有边缘计算节点的信息中查询到运行正常的边缘计算节点,然后再获取这些运行正常的边缘计算节点的位置,从而比较这些运行正常的边缘计算节点与所述主播客户端之间的距离,找到距离最近的一个作为所述第二边缘计算节点。
111.s3064,将所述第二边缘计算节点的ip地址返回给所述主播客户端。
112.在通过上述过程找到所述第二边缘计算节点后,所述边缘探测服务节点获取所述第二边缘计算节点的ip地址,将所述第二边缘计算节点的ip地址返回给所述主播客户端,所述主播客户端向所述第二边缘计算节点进行推流。
113.本实施例提出的直播推流地址分配方法,可以在现有直播体系框架的基础上新增边缘探测服务节点,在边缘探测服务节点运行正常的情况下,优先使用边缘探测服务节点完成对边缘计算节点的探活和调度,降低对中心服务节点的依赖性。
114.并且,由于每个边缘计算节点都附带部署所述边缘探测服务节点,所述边缘探测服务节点实时主动向所绑定的边缘计算节点探测,且每个边缘探测服务节点之间相互通信,都具有所有边缘计算节点的信息,以此方式完成边缘探测,可以解决延迟问题。
115.另外,由于边缘探测服务节点优先将所绑定的边缘计算节点分配给主播,在异常情况下则分配距离主播最近的其他正常的边缘计算节点,采用就近原则,有效地降低了链路传输距离,保障传输效率和质量。
116.实施例三
117.如图5所示,为本技术第三实施例提出的一种直播推流地址分配方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以边缘计算节点8作为执行主体对该方法进行说明。在本实施例中,所述边缘探测服务节点6为附加在所述边缘计算节点8中的边缘探测服务模块。具体来说,本实施例的执行主体实际为所述边缘探测服务模块。
118.该方法包括以下步骤:
119.s400,接收主播客户端发送的第二推流地址请求。
120.所述主播客户端从所述开播服务节点中收到所述边缘探测服务节点(边缘探测服务模块)的ip地址后,向所述边缘计算节点中的边缘探测服务模块发送第二推流地址请求。
121.s402,探测所述边缘计算节点的运行状态。
122.在本实施例中,所述边缘探测服务模块实时主动向自身所在的所述边缘计算节点发送探测信息,并判断是否收到回复信息。若在预设时段内收到回复信息,则表示所述边缘计算节点运行正常,否则表示所述边缘计算节点运行异常。可以理解,由于所述边缘探测服务模块融合在所述边缘计算节点中,也可以采用其他可行的方式探测所述边缘计算节点的运行状态。
123.本实施例将边缘计算节点运行状态的获取方式从中心调度模式中的由边缘计算节点主动定时上报,改为实时探测,解决了网络传输问题和延迟问题。
124.另外,本实施例的各个边缘探测服务节点或边缘探测服务模块之间使用raft协议相互通信,从而使所述边缘探测服务模块可以拥有所有边缘计算节点中的信息(例如运行状态、位置等)和彼此之间(边缘探测服务节点或边缘探测服务模块)的位置。
125.s404,当所述主播客户端与所述边缘计算节点之间的距离小于等于预设阈值且所述边缘计算节点运行正常时,将所述边缘计算节点的ip地址返回给所述主播客户端。
126.所述边缘探测服务模块若发现所述主播客户端的位置和自己的地址(也就是所述边缘计算节点的地址)距离很近(小于等于预设阈值),且自己所在的所述边缘计算节点(例如节点a)运行正常,则直接将所述边缘计算节点(节点a)的ip地址返回给主播客户端,主播客户端向所述边缘计算节点(节点a)进行推流。
127.s406,当所述主播客户端与所述边缘计算节点之间的距离大于所述阈值或所述边缘计算节点运行异常时,探测其他边缘计算节点的运行状态,并从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端。
128.若所述边缘探测服务模块发现所述主播客户端的位置和自己的地址(也就是所述边缘计算节点的地址)距离很远(大于阈值),或者自己所在的所述边缘计算节点(例如节点a)运行异常,则进一步探测其他边缘计算节点的运行状态。
129.在本实施例中,所述边缘探测服务模块可以使用raft协议与其他边缘计算节点绑定的边缘探测服务节点或其他边缘计算节点中的边缘探测服务模块之间相互通信,得到所述其他边缘计算节点的运行状态。然后从所有边缘计算节点中选择一个离主播客户端位置最近的其他边缘计算节点(例如节点c),将所述其他边缘计算节点(节点c)的ip地址返回给主播客户端,主播客户端向所述其他边缘计算节点(节点c)进行推流。
130.本实施例提出的直播推流地址分配方法,可以在现有直播体系框架的基础上,在边缘计算节点中新增边缘探测服务模块,在边缘探测服务模块运行正常的情况下,优先使
用边缘探测服务模块完成对边缘计算节点的探活和调度,降低对中心服务节点的依赖性。
131.并且,由于每个边缘计算节点都附带部署所述边缘探测服务模块或者独立的边缘探测服务节点,可以实时主动向所述边缘计算节点探测,且每个边缘探测服务模块或边缘探测服务节点之间相互通信,都具有所有边缘计算节点的信息,以此方式完成边缘探测,可以解决延迟问题。
132.另外,由于所述边缘探测服务模块优先将所在的边缘计算节点分配给主播,在异常情况下则分配距离主播最近的其他正常的边缘计算节点,采用就近原则,有效地降低了链路传输距离,保障传输效率和质量。
133.实施例四
134.如图6所示,为本技术第四实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图6仅示出了具有组件21

23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述开播服务节点2或所述边缘探测服务节点6或所述边缘计算节点8。
135.所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如直播推流地址分配系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
136.所述处理器22在一些实施例中可以是cpu、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述直播推流地址分配系统60等。
137.所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
138.实施例五
139.如图7所示,为本技术第五实施例提出一种直播推流地址分配系统60的模块示意图。在本实施例中,所述直播推流地址分配系统60应用于所述开播服务节点2中。所述直播推流地址分配系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
140.在本实施例中,所述直播推流地址分配系统60包括:
141.第一接收模块600,用于接收主播客户端发送的第一推流地址请求。
142.主播在开播前需要先请求获取推流节点。在本实施例中,主播推流的调度有两种模式,一种是中心调度,即由中心服务节点向主播客户端分配合适的边缘计算节点进行推流;还有一种是边缘探测服务,即由边缘探测服务节点向主播客户端分配合适的边缘计算节点进行推流。
143.主播客户端向开播服务节点发送第一推流地址请求(请求中心服务节点或边缘探测服务节点的ip地址)。开播服务节点接收到该请求后,后续根据边缘探测服务节点和中心服务节点的运行状态,判断到底返回哪个地址。
144.获取模块602,用于获取边缘探测服务节点和中心服务节点的运行状态。
145.在收到所述第一推流地址请求后,为了判断究竟为所述主播客户端分配哪一个地址,需要先获取边缘探测服务节点和中心服务节点的运行状态。在本实施例中,对边缘探测服务节点和中心服务节点的运行状态的判断依据是这两个服务是否可用,例如是否发生无法访问的情况。
146.调度模块604,用于当所述边缘探测服务节点运行正常时,将所述边缘探测节点的ip地址返回给所述主播客户端。
147.在本实施例中,对于中心调度和边缘探测服务这两种模式,优先考虑边缘探测服务这种模式,这样的处理方式可以降低对中心服务节点的依赖。因此,当获取到边缘探测服务节点的运行状态为正常时,调度模块604优先将所述边缘探测服务节点的ip地址返回给所述主播客户端,以使所述边缘探测节点在收到所述主播客户端发送的第二推流地址请求后,根据所绑定的边缘计算节点的运行状态为所述主播客户端分配边缘计算节点的ip地址。
148.具体而言,所述主播客户端收到所述边缘探测服务节点的ip地址后,向所述边缘探测服务节点发送第二推流地址请求。所述边缘探测服务节点若发现所述主播客户端的位置和自己的地址距离很近(小于等于预设阈值),且自己所绑定的边缘计算节点(例如节点a)运行正常,则直接将该边缘计算节点(节点a)的ip地址返回给主播客户端,主播客户端向该边缘计算节点进行推流。
149.若所述边缘探测服务节点发现所述主播客户端的位置和自己的地址距离很远(大于阈值),则从所有边缘计算节点中选择一个离主播客户端位置最近的边缘计算节点(例如节点c),将该边缘计算节点(节点c)的ip地址返回给主播客户端,主播客户端向该边缘计算节点(节点c)进行推流。
150.值得注意的是,由于直播体系中部署有多个边缘探测服务节点,上述当所述边缘探测服务节点运行正常时,指的是(在一定范围内)存在运行正常的至少一个边缘探测服务节点。所述调度模块604可以将(一定范围内)所有运行正常的边缘探测服务节点的ip地址列表返回给所述主播客户端,所述主播客户端从所述ip地址列表中选择任意一个(例如距离最近的)边缘探测服务节点发送所述第二推流地址请求。
151.所述调度模块604,还用于当所述边缘探测服务节点运行异常时,将所述中心服务节点的ip地址返回给所述主播客户端。
152.在本实施例中,若所述边缘探测服务节点运行状态异常,再考虑采用中心调度模
式,将所述中心服务节点的ip地址返回给所述主播客户端,以使所述中心服务节点在收到所述主播客户端发送的第二推流地址请求后,根据所有边缘计算节点上报的心跳信息和与所述主播客户端之间的距离为所述主播客户端分配边缘计算节点的ip地址。
153.具体而言,所述主播客户端收到所述中心服务节点的地址后,向所述中心服务节点发送第二推流地址请求。而由于每个边缘计算节点定时向中心服务节点上报心跳信息,则中心服务节点可以通过该心跳信息判断每个边缘计算节点的运行状态。所述中心服务节点收到所述主播客户端的第二推流地址请求后,从最近一定时间周期内有心跳上报(即运行正常)的边缘计算节点中,选择一个离主播客户端位置最近的边缘计算节点(例如节点d),将该边缘计算节点(节点d)的ip地址分配给主播客户端,主播客户端向该边缘计算节点(节点d)进行推流。
154.由于任何实际应用场景中都无法保证边缘探测服务一定处于正常的情况,任何系统均有出现异常的可能性,因此本实施例保留中心调度模式。在正常情况下,由边缘探测服务节点来分配推流节点,而异常情况下由中心服务节点负责分配推流节点。
155.本实施例提出的直播推流地址分配系统,可以在现有直播体系框架的基础上新增边缘探测服务节点,在边缘探测服务节点运行正常的情况下,优先使用边缘探测服务节点完成对边缘计算节点的探活和调度,在边缘探测服务节点运行异常时再重新使用中心服务调度,从而通过双层机制保障流服务的可用性,保证流用户的推流稳定性。
156.并且,由于每个边缘计算节点都附带部署所述边缘探测服务节点,所述边缘探测服务节点实时主动向所绑定的边缘计算节点探测,且每个边缘探测服务节点之间相互通信,都具有所有边缘计算节点的信息,以此方式完成边缘探测,可以解决延迟问题。
157.另外,由于边缘探测服务节点优先将所绑定的边缘计算节点分配给主播,在异常情况下则分配距离主播最近的其他正常的边缘计算节点,采用就近原则,有效地降低了链路传输距离,保障传输效率和质量。
158.实施例六
159.如图8所示,为本技术第六实施例提出一种直播推流地址分配系统60的模块示意图。在本实施例中,所述直播推流地址分配系统60应用于所述边缘探测服务节点6中(当所述直播推流地址分配系统60应用于所述边缘计算节点8且所述边缘计算节点8中融合边缘探测服务模块时,与本实施例类似,不再赘述。)。所述直播推流地址分配系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
160.在本实施例中,所述直播推流地址分配系统60包括:
161.第二接收模块610,用于接收主播客户端发送的第二推流地址请求。
162.所述主播客户端从所述开播服务节点中收到所述边缘探测服务节点的ip地址后,向所述边缘探测服务节点发送第二推流地址请求。
163.当存在多个运行正常的边缘探测服务节点时,所述开播服务节点将所有运行正常的边缘探测服务节点的ip地址列表返回给所述主播客户端,所述主播客户端从所述ip地址列表中选择任意一个(例如距离最近的)边缘探测服务节点发送所述第二推流地址请求。
164.探测模块612,用于探测所绑定的第一边缘计算节点的运行状态。
165.在本实施例中,每个边缘计算节点绑定一个边缘探测服务节点(假设当前所述边缘探测服务节点绑定的是第一边缘计算节点)。所述探测模块612实时主动向绑定的所述第一边缘计算节点发送探测信息,并判断是否收到回复信息。若在预设时段内收到回复信息,则表示所述第一边缘计算节点运行正常,否则表示所述第一边缘计算节点运行异常。
166.本实施例将边缘计算节点运行状态的获取方式从中心调度模式中的由边缘计算节点主动定时上报,改为实时同机房探测,解决了网络传输问题和延迟问题。
167.另外,本实施例的各个边缘探测服务节点之间使用raft协议相互通信,从而使每个边缘探测服务节点可以拥有所有边缘计算节点中的信息(例如运行状态、位置等)和彼此之间(边缘探测服务节点)的位置。
168.分配模块614,用于当所述主播客户端与所述边缘探测服务节点之间的距离小于等于预设阈值且所述第一边缘计算节点运行正常时,将所述第一边缘计算节点的ip地址返回给所述主播客户端。
169.所述分配模块614若发现所述主播客户端的位置和自己的地址距离很近(小于等于预设阈值),且自己所绑定的第一边缘计算节点(例如节点a)运行正常,则直接将所述第一边缘计算节点(节点a)的ip地址返回给主播客户端,主播客户端向所述第一边缘计算节点(节点a)进行推流。
170.所述分配模块614,还用于当所述主播客户端与所述边缘探测服务节点之间的距离大于所述阈值或所述第一边缘计算节点运行异常时,从其他运行正常的边缘计算节点中选择一个分配给所述主播客户端。
171.若所述分配模块614发现所述主播客户端的位置和自己的地址距离很远(大于阈值),或者自己所绑定的第一边缘计算节点(例如节点a)运行异常,则从所有边缘计算节点中选择一个离主播客户端位置最近的第二边缘计算节点(例如节点c),将所述第二边缘计算节点(节点c)的ip地址返回给主播客户端,主播客户端向所述第二边缘计算节点(节点c)进行推流。
172.本实施例提出的直播推流地址分配系统,可以在现有直播体系框架的基础上新增边缘探测服务节点,在边缘探测服务节点运行正常的情况下,优先使用边缘探测服务节点完成对边缘计算节点的探活和调度,降低对中心服务节点的依赖性。
173.并且,由于每个边缘计算节点都附带部署所述边缘探测服务节点,所述边缘探测服务节点实时主动向所绑定的边缘计算节点探测,且每个边缘探测服务节点之间相互通信,都具有所有边缘计算节点的信息,以此方式完成边缘探测,可以解决延迟问题。
174.另外,由于边缘探测服务节点优先将所绑定的边缘计算节点分配给主播,在异常情况下则分配距离主播最近的其他正常的边缘计算节点,采用就近原则,有效地降低了链路传输距离,保障传输效率和质量。
175.实施例七
176.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有直播推流地址分配程序,所述直播推流地址分配程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的直播推流地址分配方法的步骤。
177.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
178.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
179.显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
180.以上仅为本技术实施例的优选实施例,并非因此限制本技术实施例的专利范围,凡是利用本技术实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术实施例的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1