服务器负载均衡&冗余&热备设计V0.9
时间:2025-07-13
时间:2025-07-13
iCMS负载均衡&冗余&热备设计
1 动态负载分配设计
为了使整个ICMS系统能高效的运行,需要对整个系统的资源进行统一管理和分配,以便达到以最小的资源消息,稳定高效的完成各项功能的目的。在此基础上,我们提出了动态进行负载分配的方案。
2.1 媒体和设备负载分配
2.1.1 基本原则
1)负载管理的基本单位选择为子设备。出于性能上的考虑,需要保证同一个设备只被一个iSwitch打开,则当某个通道有负载请求的时候,优先选择已经被打开的设备(设备多次打开会造成设备的性能下降/有些设备的连接数是有限的,连接过多的情况下新的连接就会失败)。
2)为了达到统一管理的目的,所有的设备打开由MC负责,iSwitch不主动打开设备,只有iMC分配设备相关的功能的时候,iSwitch才打开相应设备。
3)iSwitch会定时关闭打开后长期不使用的设备。关闭设备信息也在定时发送的负载信息里一起发送。
4)iMC的负载分配不跨域,不跨集群。集群内部的设备,只分配到本集群的iSwitch。
2.1.2 负载计算说明
1)每个iSwitch定时向iMC发送负载信息,包括已经打开的子设备数目,设备列表,子设备列表,子设备和设备对应关系,当前iSwitch负载总数。间隔保持原来的20秒。
2)iMC 需要维持两个关系来计算负载。
一是,需要维持一个已打开设备和子设备的一对多的映射表
二是,需要维持一个每一个iSwich的总负载和打开的子设备列表。
(这里需要注意的是,为了避免出现关闭设备和打开设备时间上不一致的情况,iMC对每个子设备维护一个关闭标识,默认置0,第一次收到iSwitch负载信息中,如果关闭了该设备则置未1,这时候不真正删除,直到第二次收到负载中该设备也关闭了,才删除。如果这时候设备又被打开了,则重新将标识置为0)
3)当Monitor/Manage/Alarm向iMC请求iSwitch地址的时候,iMC需要分配负载。
4) 分配规则:
步骤一:首先判断请求的功能类型,如果是 “实时监看,计划录像,语音对讲,报警