平台互联网关堆叠部署的负载均衡系统及视频呼叫方法与流程

文档序号:11411008阅读:373来源:国知局
平台互联网关堆叠部署的负载均衡系统及视频呼叫方法与流程

本发明属于网络技术领域,涉及平台互联网关负载均衡策略,尤其是一种平台互联网关堆叠部署的负载均衡系统及视频呼叫方法。



背景技术:

非标平台接入网关负责实现第三方非标平台与国标平台的对接,非标平台接入网关通过非标平台厂家提供的平台sdk与非标平台进行交互。下级平台接入的设备全部汇聚到非标平台接入网关,现有技术的这种方式存在以下缺点:

1.相对数目庞大的客户端,平台接入网关服务器功能实现过分集中,当大量客户端请求到达服务器时,服务器囿于处理能力和网络带宽的限制,不能及时响应;

2.当发现应用系统负载过重时,不容易通过增加软/硬件设备来达到扩展目标。

另外,如图1所示,在视频监控系统中,如上图所示,采用单个服务器作为中心,随着连接前端设备的增多,客户端的请求增加,由于单机的处理能力有限和网络的带宽的限制,平台接入网关服务器必然成为瓶颈。

类似的,在许多企业级应用系统中都有这种情况,当由于某种原因,应用的访问大量上升,容易造成网络瓶颈,导致用户的请求无法得到及时响应,或后台服务中心因无法处理这些大量请求而造成系统崩溃或网络流量过于集中导致网络拥塞使得视频无法流畅的传输。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供一种平台互联网关堆叠部署的负载均衡系统及视频呼叫方法。

本发明的目的是通过以下技术方案来实现的:

这种平台互联网关堆叠部署的负载均衡系统由多态服务器组成服务器集群,所述服务器集群中的每台服务器都能完成相同的服务功能;当客户向服务器集群请求服务时,选出负载最小的服务器来向客户提供服务功能。

进一步,上述服务器集群包括主服务器以及与主服务器连接的多台从服务器,所述主服务器连接有客户端。

上述主服务器上设置有负载均衡模块;所述负载均衡模块维护一张当前可用服务器的列表,探测列表中服务器的可用性,检查新的从服务器的加入,收集各台从服务器的负载情况;当客户端向代表整个系统的负载均衡模块提出服务请求时,负载均衡模块根调度算法选出当前可用的最合理的服务器来完成服务功能。

上述主服务器上设置有业务功能模块、负载收集模块、信令控制功能模块、控制功能模块和调度计算模块;所述从服务器上设置有业务功能模块、负载采集模块和控制功能模块:各模块如下:

控制功能模块:提供主服务器和从服务器之间的信令控制,ocx对设备进行的播放、停止和录像回放控制命令,主服务器通过调度计算模块,由哪个服务器来负责流播放,然后主服务器将控制命令通过控制功能模块发给相应的从服务器;

负载采集模块:从服务器与主服务器建立tcp连接之后,与心跳模块结合,采集从服务器的系统性能参数,并发送到主服务器的负载收集模块;

业务功能模块:主服务器和从服务器上的业务功能模块通过ocx相互建立数据流,实现视频的转发;

调度计算模块:接收负载收集模块发来的系统负载性能参数,并转化成方便调度的向量;

负载收集模块:负责收集各从服务器的负载采集模块发来的负载信息,汇总并传给调度计算模块;

信令控制模块:ocx与主服务器之间的信令交互控制,添加一条定向命令,根据调度计算模块和用户定制的策略,选出合适的服务器,然后将ip地址和tcp端口号返回给ocx,ocx与其建立数据流的链接。

本发明还提出一种平台互联网关堆叠部署的负载均衡系统的视频呼叫方法,包括以下步骤:

⑴主服务器在19001端口监听,从服务器连接主服务器,建立tcp连接,发送imsgtype=distribute_client_connect_req,连接请求命令,boby=null;

⑵从服务器连接成功,主服务器发送imsgtype=didtribute_client_connect_resp,boby=null;

⑶从服务器启动负载采集模块,每隔一段时间发送心跳信息和服务器性能参数,发送imsgtype=distribute_client_echo_req,心跳包,boby=null;

⑷主服务器发送imsgtype=distribute_client_echo_resp,心跳回应包,boby=null;

⑸ocx连接服务器19532端口,建立信令通道,发送imsgtype=webinterface_ocx_connect_req,连接请求命令,boby=null;

⑹主服务器发送imsgtype=webinterface_ocx_connect_resp,连接响应命令,boby=null;

⑺ocx发送看某一路视频的定向命令,主服务器运行调度算法从当前服务器列表中选出合适的服务器;ocx发送imsgtype=webinterface_ocx_call_who_req,body=msgcallplaywhoreq,包含设备id信息;

⑻主服务器发送imsgtype=webinterface_ocx_call_who_resp,body=

msgcallplaywhoresp,主服务器返回选出的服务器地址和端口返给客户端;

⑼客户端利用返回结果,与选出的服务器建立数据流通道连接,发送imsgtype=data_ocx_connect_req,媒体数据连接请求命令,boby=called

⑽如果选出的是从服务器,从服务器回复imsgtype=data_ocx_connect_resp,boby=0为成功建立连接;

⑾客户端发送视频呼叫请求命令,imsgtype=webinterface_ocx_call_paly_req,boby=msgcallplayreq;

⑿主服务通过控制功能模块给选出的服务器发送视频呼叫请求命令,选出的服务器调用底层接口获取视频流转发给客户端;主服务器发送imsgtype=distribute_client_call_play_req,转发呼叫命令,boby=msgcallplayreq;从服务器收到此命令,就开始呼叫视频;

⒀从服务器如果呼叫视频成功,给从服务器发送imsgtype=distribute_client_call_play_resp,body=msgdisservercommresp;

⒁主服务器给ocx发送imsgtype=webinterface_ocx_call_paly_resp,body=msgwebservercommresp;

⒂客户端发送视频停止呼叫命令,ocx发送imsgtype=webinterface_ocx_call_stop_req,body=msgcallstopreq;

⒃主服务器通过控制功能模块给选出的服务器发送视频停止呼叫命令,选出的服务器调用底层接口停止视频流的获取;主服务器发送imsgtype=distribute_client_call_stop_req,body=msgcallstopreq;

⒄从服务器收到命令,视频转发服务器功能完成,然后拆除数据流连接,至此,整个过程完毕;停止视频成功回复imsgtype=distribute_client_call_stop_resp,主服务器要更新调度计算模块列表;

⒅主服务器给ocx发送imsgtype=

webinterface_ocx_call_stop_resp,停止播放回复。

进一步,以上对网络系统状况的检测采用心跳通信机制,具体为:利用从服务器和主服务器的应用层协议间的心跳请求,进行判断,即心跳算法。

上述心跳算法是在从服务器和主服务器之间建立连接,然后从服务器定时向主服务器发送心跳包,探询一次,主服务器有一组计数器与各从服务器对应,该组计数器每过时间t就加加,收到从服务器的心跳包或者数据包,计数就清零,当计数器i超过规定时间k时,表示在t*k时间没没有收到第i台从服务器的相应,就认为该服务器不可用,这样就得到了各从服务器的可用情况。

本发明具有以下有益效果:

本发明实现以一台平台接入网关服务为主,其他接入网关服务为辅,对平台接入网关服务进行级联并对级联服务进行管理,实现社会资源媒体流的大容量接入。本发明实现了由多台服务器组成的服务器集群,集群中的每台服务器都能完成相同的服务功能(视频转发)。当客户向服务器(主)请求服务时,按一定的算法选出负载最小的服务器,由它来向客户提供服务功能(视频转发)。因此,本发明可以将视频请求进行分发,让一部分的请求去访问另一台从服务器,让单台服务器的负载降低,从而解决现有技术的缺陷。

附图说明

图1为现有技术中视频监控系统连接框图;

图2为本发明的软件架构图;

图3为本发明的系统模块划分图;

图4为本发明的数据报文交互图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

参见图2和图3:本发明的平台互联网关堆叠部署的负载均衡系统由多态服务器组成服务器集群,所述服务器集群中的每台服务器都能完成相同的服务功能;当客户向服务器集群请求服务时,选出负载最小的服务器来向客户提供服务功能。所述服务器集群包括主服务器以及与主服务器连接的多台从服务器,所述主服务器连接有客户端。主服务器上设置有负载均衡模块;所述负载均衡模块维护一张当前可用服务器的列表,探测列表中服务器的可用性,检查新的从服务器的加入,收集各台从服务器的负载情况;当客户端向代表整个系统的负载均衡模块提出服务请求时,负载均衡模块根调度算法选出当前可用的最合理的服务器来完成服务功能。本发明的负载均衡模块相当于主服务器的负载收集模块和调度计算模块功能的总和。

所述主服务器上设置有业务功能模块、负载收集模块、信令控制功能模块、控制功能模块和调度计算模块;所述从服务器上设置有业务功能模块、负载采集模块和控制功能模块:各模块如下:

控制功能模块:提供主服务器和从服务器之间的信令控制,ocx对设备进行的播放、停止和录像回放控制命令,主服务器通过调度计算模块,由哪个服务器来负责流播放,然后主服务器将控制命令通过控制功能模块发给相应的从服务器;

负载采集模块:从服务器与主服务器建立tcp连接之后,与心跳模块结合,采集从服务器的系统性能参数,并发送到主服务器的负载收集模块;

业务功能模块:主服务器和从服务器上的业务功能模块通过ocx相互建立数据流,实现视频的转发;

调度计算模块:接收负载收集模块发来的系统负载性能参数,并转化成方便调度的向量;

负载收集模块:负责收集各从服务器的负载采集模块发来的负载信息,汇总并传给调度计算模块;

信令控制模块:ocx与主服务器之间的信令交互控制,添加一条定向命令,根据调度计算模块和用户定制的策略,选出合适的服务器,然后将ip地址和tcp端口号返回给ocx,ocx与其建立数据流的链接。

本发明视频呼叫流程如下:

⑴主服务器在19001端口监听,从服务器连接主服务器,建立tcp连接。

发送imsgtype=distribute_client_connect_req,连接请求命令,boby=null。

⑵从服务器连接成功,主服务器发送imsgtype=didtribute_client_connect_resp,boby=null。

⑶从服务器启动负载采集模块,每隔一段时间发送心跳信息和服务器性能参数,发送imsgtype=distribute_client_echo_req,心跳包,boby=null

⑷主服务器发送imsgtype=distribute_client_echo_resp,心跳回应包,boby=null。

⑸ocx连接服务器19532端口,建立信令通道

发送imsgtype=webinterface_ocx_connect_req,连接请求命令,boby=null

⑹主服务器发送imsgtype=webinterface_ocx_connect_resp,连接响应命令,boby=null

⑺ocx发送看某一路视频的定向命令,主服务器运行调度算法从当前服务器列表中选出合适的服务器。ocx发送imsgtype=webinterface_ocx_call_who_req,body=msgcallplaywhoreq,主要包含设备id信息

⑻主服务器发送imsgtype=webinterface_ocx_call_who_resp,body=msgcallplaywhoresp,主服务器返回选出的服务器地址和端口返给客户端。

⑼客户端利用返回结果,与选出的服务器建立数据流通道连接。发送imsgtype=data_ocx_connect_req,媒体数据连接请求命令,boby=called

⑽如果选出的是从服务器,从服务器回复imsgtype=data_ocx_connect_resp,boby=0为成功建立连接

⑾客户端发送视频呼叫请求命令,imsgtype=webinterface_ocx_call_paly_req,boby=msgcallplayreq。

⑿主服务通过控制功能模块给选出的服务器发送视频呼叫请求命令,选出的服务器调用底层接口获取视频流转发给客户端。主服务器发送imsgtype=distribute_client_call_play_req,转发呼叫命令,boby=msgcallplayreq。从服务器收到此命令,就开始呼叫视频。

⒀从服务器如果呼叫视频成功,给从服务器发送imsgtype=distribute_client_call_play_resp,body=msgdisservercommresp。

⒁主服务器给ocx发送imsgtype=webinterface_ocx_call_paly_resp,body=msgwebservercommresp。

⒂客户端发送视频停止呼叫命令,ocx发送imsgtype=webinterface_ocx_call_stop_req,body=msgcallstopreq。

⒃主服务器通过控制功能模块给选出的服务器发送视频停止呼叫命令,选出的服务器调用底层接口停止视频流的获取。主服务器发送imsgtype=distribute_client_call_stop_req,body=msgcallstopreq。

⒄从服务器收到此命令,视频转发服务器功能完成,然后拆除数据流连接,至此,整个过程完毕。停止视频成功回复imsgtype=distribute_client_call_stop_resp,主服务器要更新调度计算模块列表。

⒅主服务器给ocx发送imsgtype=

webinterface_ocx_call_stop_resp,停止播放回复。

尽管有多种负载均衡算法可以较好地把数量流量分配给服务器去负载,但如果负载均衡策略没有对网络系统状况的检测方式和能力,一旦在某台从服务器与主服务器网络间出现故障的情况下,负载均衡器依然把一部分数据流量引向该从服务器,这势必造成大量的服务器请求被丢失,达不到不间断可用性的要求。所以良好的负载均衡策略应有对网络故障、应用服务故障的检测方式和能力;

本次升级采用基于应用的侦测:利用从服务器和主服务器的应用层协议间的心跳请求,进行判断。心跳算法就是在从服务器和主服务器之间建立专门的连接,然后从服务器每个一定时间就向主服务器发送心跳包,探询一次,主服务器有一组计数器与各从服务器对应,该组计数器每过时间t就加加,收到从服务器的心跳包或者数据包,计数就清零,当计数器i超过规定k时,表示在t*k时间没没有收到第i台从服务器的相应,就认为该服务器不可用。这样,就得到了各从服务器的可用情况。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1