一种网络广播系统的控制方法、系统、设备及介质与流程

摘要: 本发明涉及网络广播,尤其涉及一种网络广播系统的控制方法、系统、设备及介质。背景技术:1、网络广播系统是一种通过广播服务节点生成广播控制指令和音频流,利用ip网络...
一种网络广播系统的控制方法、系统、设备及介质与流程

本发明涉及网络广播,尤其涉及一种网络广播系统的控制方法、系统、设备及介质。

背景技术:

1、网络广播系统是一种通过广播服务节点生成广播控制指令和音频流,利用ip网络传输广播控制指令和音频流,并由网络功放和网络扬声器等广播终端进行接收和播放的广播系统。网络广播系统广泛应用于核电、机场、地铁以及应急指挥等场景,上述场景对广播服务的实时性和连续性要求较高,广播服务中断可能导致重要信息无法及时传递。

2、现有技术采用双节点或多节点高可用架构,将主广播服务器和备用广播服务器组成一个高可用节点组,主广播服务器和备用广播服务器之间通过心跳检测、状态同步或者数据同步机制维持主备关系。在主广播服务器正常工作时,由主广播服务器向广播终端发送广播控制指令和音频流;当检测到主广播服务器发生故障时,由备用广播服务器接替主广播服务器,继续向广播终端提供广播服务。

3、然而,上述现有技术中,一个节点组内的多台服务器通常部署于同一机房,共用相同的电源、网络出口和交换设备。当该节点组所在机房发生断电、公共网络链路中断或者核心交换设备故障时,该节点组内的全部服务器可能同时无法对外提供广播服务。此时,即使节点组内存在处于正常运行状态的服务器,该节点组整体上已无法向其管辖的广播终端发送有效的广播控制指令或音频流,导致广播失效。

技术实现思路

1、本发明提供了一种网络广播系统的控制方法、系统、设备及介质,能够解决节点组整体失效时广播服务中断的问题。

2、本发明提供了一种网络广播系统的控制方法,网络广播系统包括多个节点组,每个节点组包括一个或多个广播服务节点,每个广播服务节点控制一个或多个广播设备;

3、方法包括:

4、周期性地获取第二节点组的组级健康状态;

5、根据组级健康状态判断第二节点组是否满足预设失效条件,若是,则判定第二节点组失效,并确定第二节点组控制的广播设备集合;

6、发送接管信息至广播设备集合中的每个广播设备,以指示每个广播设备将控制关系从第二节点组切换至第一节点组;

7、切换完成后,根据广播任务向广播设备集合发送广播控制指令或者音频流。

8、本发明实施例在节点组因机房断电、公共网络链路中断、核心交换设备故障、公共软件异常或者其他原因整体失去广播服务能力的情况下,可由其他正常节点组接管其广播服务,弥补了现有组内高可用机制无法处理节点组级故障的不足;以节点组所辖广播设备集合为整体接管对象,而不是等待每台设备分别判断、分别选择服务器,能够使同一广播区域内的设备在同一时间切换到相同的新节点组,避免部分设备已切换而其他设备仍连接失效节点组的情况;接管完成后由新节点组继续发送广播控制指令和音频流,无需管理人员逐台调整广播设备配置,缩短了从节点组故障发生到广播设备重新获得控制指令及音频流之间的时间。

9、进一步地,周期性地获取第二节点组的组级健康状态,具体为:

10、在第二节点组,基于预设周期,周期性地判断第二节点组中的每个节点是否健康;

11、在每个预设周期,若所有节点均不健康,则第二节点组确定组件健康状态为不健康,若任一节点健康,则第二节点组确定组件健康状态为健康。

12、这样将节点组作为健康检测和故障判定的基本单位,只要节点组内至少有一个节点能够正常提供广播服务,该节点组的组级健康状态即为健康,能够反映整个节点组对外提供广播服务的实际能力,避免了因组内个别服务器临时异常而将整个节点组误判为失效;只有当节点组内全部节点均无法提供服务时,才判定组级健康状态为不健康,从而降低了因单一节点瞬时故障触发跨组接管的概率,减少了不必要的设备切换。

13、进一步地,周期性地判断第二节点组中的每个节点是否健康,具体为:

14、在第二节点组中的每个节点,通过检测节点是否可以提供广播服务,判断第二节点组中的每个节点是否健康;

15、或者,在第二节点组中的每个节点,判断节点控制的广播设备是否存在心跳超时或异常,若是,且存在心跳超时或异常的广播设备的数量大于第一预设阈值,则第二节点组的健康状态为不健康,否则为健康。

16、这样节点的健康判断包含“自身能否提供广播服务”和“所辖设备心跳是否正常”两个维度,能够识别“服务器进程正常运行但所辖设备已无法连接”的异常情况,更准确地反映节点的实际广播服务能力;通过设置第一预设阈值,允许少量广播设备心跳异常而不影响节点的健康判定,避免了因个别设备网络波动导致节点被误判为不健康;节点健康状态综合了节点自身服务能力与所控制设备的反馈,使组级健康状态能够真实反映节点组是否能够实际向广播设备发送控制指令和音频流,而不是仅仅反映服务器是否在线。

17、进一步地,根据组级健康状态判断第二节点组是否满足预设失效条件,具体为:

18、若组件健康状态为不健康,且持续时间超过预设时间阈值,则判定第二节点组满足预设失效条件;

19、或者,若第一节点组收到相邻两次的组件健康状态之间的时间差大于预设周期,则判定第二节点组满足预设失效条件。

20、这样通过设置持续时间阈值,避免因瞬时网络波动导致的不必要跨组切换,只有当节点组持续不健康超过设定时间后才启动接管,减少了系统的无效切换次数;通过超时判定机制,当节点组因机房断电、核心交换设备故障或网络隔离而完全无法上报健康状态时,第一节点组仍能通过“超时未收”及时发现该节点组失效并触发接管,提高了健康状态判断的准确性。

21、进一步地,通过检测节点是否可以提供广播服务,判断第二节点组中的每个节点是否健康,具体为:

22、节点通过检测节点是否可以响应广播服务请求,或者是否可以发送广播控制指令,或者是否可以提供音频流,或者与节点控制的广播设备之间是否可以通信,或则是否可以收到控制指令或音频流,或者是否可以执行当前广播任务,判断第二节点组中的每个节点是否健康。

23、这样本方案从广播服务请求响应、控制指令发送、音频流提供、设备通信、指令接收、任务执行等多个维度检测节点的广播服务能力,能够全面反映节点的实际广播服务能力,而非仅仅反映节点是否在线。

24、进一步地,在发送接管信息至广播设备集合中的每个广播设备之后,还包括:

25、判断是否接收到广播设备发送的切换确认信息;

26、若存在未在预设确认时间内接收到切换确认信息的目标广播设备,再次向目标广播设备发送接管信息,对未返回切换确认信息且重发次数大于第二预设阈值的目标广播设备,生成异常告警信息。

27、这样通过切换确认和重传机制,确保接管信息能够可靠地送达每个广播设备,避免因网络丢包导致部分设备未能收到接管信息而仍连接已失效节点组;对重传失败超过阈值的设备生成异常告警信息,使运维人员能够精确定位未能成功接管的设备,无需逐台排查所有广播设备,降低了故障处理阶段的人工运维工作量。

28、进一步地,广播设备中存储有作为当前控制节点组的第一节点组的标识,以及当前控制权版本号;

29、发送接管信息至广播设备集合中的每个广播设备,具体为:

30、获取广播设备中的当前控制权版本号,将当前控制权版本号单调递增,得到下一控制权版本号;

31、将包括下一控制权版本号的接管信息发送至广播设备;

32、切换完成后,方法还包括:

33、采用下一控制权版本号向广播设备发送携带下一控制权版本号的广播控制指令或音频流,以使广播设备将当前控制权版本号更新为下一控制权版本号,并执行携带下一控制权版本号的广播控制指令或播放音频流;并且,广播设备不执行携带的控制权版本号不大于携带当前控制权版本号的广播控制指令或音频流。

34、这样通过在每次设备控制权变更时将版本号单调递增,使每次变更对应一个唯一的、严格递增的版本号。即使节点组之间的网络中断而两个节点组本身都还在运行,也能使广播设备仅接受版本号更高的节点组发出的控制指令,从而避免两个节点组同时控制同一批设备所造成的指令冲突和播放混乱。并且,原失效节点组恢复后,即使继续发送原版本号的指令,设备也不会再执行,只有系统重新确认原节点组恢复并重新分配设备控制权后,原节点组才能再次控制相关设备,避免了节点组反复发生故障时设备频繁来回切换。

35、本发明另一实施例还提供了一种网络广播系统的控制系统,网络广播系统包括多个节点组,每个节点组包括一个或多个广播服务节点,每个广播服务节点控制一个或多个广播设备;

36、网络广播系统的控制系统包括:状态获取模块、失效判定模块、控制切换模块和广播接管模块;

37、状态获取模块,用于周期性地获取第二节点组的组级健康状态;

38、失效判定模块,用于根据组级健康状态判断第二节点组是否满足预设失效条件,若是,则判定第二节点组失效,并确定第二节点组控制的广播设备集合;

39、控制切换模块,用于发送接管信息至广播设备集合中的每个广播设备,以指示每个广播设备将控制关系从第二节点组切换至第一节点组;

40、广播接管模块,用于切换完成后,根据广播任务向广播设备集合发送广播控制指令或者音频流。

41、本发明另一实施例还提供了一种终端设备,包括:处理器、存储器以及存储在存储器中且被配置为由处理器执行的计算机程序,处理器执行计算机程序时,实现如本发明网络广播系统的控制方法的步骤。

42、本发明另一实施例还提供了一种计算机可读存储介质项,包括:存储的计算机程序,在计算机程序运行时,控制计算机可读存储介质所在的设备执行如本发明网络广播系统的控制方法的步骤。