集群管理器、集群系统、以及集群管理方法
技术领域
本发明涉及通信领域,并且特别地,涉及集群管理器、集群系统、以及集群管理方法。
背景技术
在要求高性能、高可靠性的电信行业中,对于电信软件的基本要求就是支持集群。如图1所示,在单台服务器的性能存在瓶颈的情况下,集群系统可以通过负载均衡器采用一定机制将所有请求分配到多台节点服务器,使得系统业务处理能力大大提升。此外,负载均衡器还能监控服务器节点的可用性,例如,其中某一台服务器故障时,可将访问请求转移到其它可以正常工作的服务器。
在现有技术中,主要采用前置硬件负载均衡器,实现业务系统的集群。
例如,F5BIG-IP、Citrix NetScaler、Juniper Redline、Foundry、Array、Nortel Alteon、Cisco等都是业界主流的负载均衡器厂商,其生产的硬件负载均衡器又称L4/L7层交换机,其中L4层主要分析IP层及TCP/UDP层,实现四层流量负载均衡;L7层交换机除了支持四层负载均衡以外,还可分析应用层的信息(如HTTP协议URI或Cookie信息)。
虽然采用硬件实现负载均衡器使其性能很高、网络吞吐量很大,但是,在很多场合下客户端和服务端需要好几次交互才能完成一次完整交易。因为这几次交互过程是密切相关的,所以服务端必须要保证分发在一台机器上,这样就存在会话保持问题。
由于会话保持和应用层协议强相关,所以通用型的硬件负载均衡器一般支持的会话保持技术有:(1)通用标准协议会话保持机制(例如HTTP协议通过Cookie、URL标识,同一个会话分发到一台机器上);(2)基于源地址的会话保持(例如IP是202.110.11.1客户端请求固定分发到某一个处理节点,如果特定IP客户端性能要求很高则无法分摊多个处理节点)
如上所述,现有技术采用硬件负载均衡器具有以下缺点:(1)对应用层协议种类支持不够,目前比较常见的只在HTTP做集群时使用;(2)不支持电信协议中常见会话机制,不能灵活定制满足负载均衡;以及(3)硬件成本比较高。
发明内容
本发明致力于克服上述相关技术中的一个或多个固有缺陷,为此,本发明提供了一种集群管理器、一种集群系统、以及一种集群管理方法。
根据本发明的第一实施例,提供了一种集群管理器,用于实现负载均衡。
该群集管理器包括:连接管理单元,用于完成外部系统连接鉴权以及对成功连接的监控;会话管理单元,用于对外部系统的请求消息向内部服务器接点建立连接队列和创建会话;负载均衡控制单元,用于在会话管理单元查询下发节点请求的情况下,选择下发节点ID;以及流量控制单元,用于完成系统许可控制和过负荷控制。
在该集群管理器中,连接管理单元、会话管理单元、负载均衡控制单元、以及流量控制单元之间可以相互连接。
根据本发明的第二实施例,提供了一种集群系统,其使用本发明实施例提供的群集管理器。
该群集系统包括:一个或多个外部系统,用于请求业务处理;一个或多个服务器节点,用于处理来自一个或多个外部系统的业务处理请求;以及集群管理器,连接在一个或多个外部系统和一个或多个服务器节点之间,用于实现负载均衡功能。
根据本发明的第三实施例,提供了一种集群管理方法。
该方法包括以下步骤:第一步骤,集群管理器收到来自外部系统的业务请求消息后,通过连接管理单元完成连接鉴权,将业务请求消息下发到会话管理单元;第二步骤,会话管理单元接收到业务请求消息后,解析业务请求消息的消息类型标识,获得下发的节点ID;第三步骤,会话管理单元根据节点ID将业务请求下发到指定节点;以及第四步骤,指定节点完成业务处理,并向会话管理单元返回应答消息。
其中,在第二步骤中,获得下发节点ID的处理包括以下步骤:步骤A,会话管理单元判断业务请求是否需要查找前一个会话;在判断业务请求需要查找前一个会话的情况下,进行到步骤B;步骤B,会话管理单元根据消息会话号查找前一个会话,找到下发的节点ID;在判断业务请求不需要查找前一个会话的情况下,进行到步骤C;步骤C,会话管理单元创建会话信息,向负载均衡控制单元查询下发节点请求,负载均衡控制单元按照负载均衡策略。
此外,该方法还包括:第五步骤,会话管理单元根据配置信息中的保持会话标志在应答消息的起始长度和字段长度,解析出应答消息的保持会话标志,在判断需要保持会话的情况下,保留会话,并记录消息会话号和节点的对应关系,在判断不需要保持会话的情况下,销毁会话;以及第六步骤,会话管理单元将应答消息发送给外部系统,其中,消息类型标识在消息字段中的位置是固定的。
通过以上技术方案,本发明实现了以下有益效果:在集群组网的情况下,可以根据消息类型配置会话管理策略,从而,可以满足负载均衡,同时还可以降低成本。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的外部系统与集群系统的框图;
图2是根据本发明第一实施例的集群管理器的框图;
图3是根据本发明第二实施例的集群系统与外部系统的框图;
图4是根据本发明第三实施例的请求消息类型及应答消息抽象组成的视图;
图5是根据本发明第三实施例的管理外部系统与集群系统通信的信令流程图;
图6是根据本发明第三实施例的集群管理方法的流程图;以及
图7是根据本发明第四实施例的集群管理方法的信令流程图。
具体实施方式
以下将参照附图来具体描述本发明的优选实施例,其中,附图构成本申请的一部分,并与本发明的实施例一起用于阐释本发明的原理。
第一实施例
下面将参照图2描述本发明的第一实施例。图2是示出根据本实施例的集群管理器200构造的框图。
如图2所示,根据本实施例的集群管理器200包括:连接管理单元202,用于完成外部系统连接鉴权以及对成功连接的监控;流量控制单元204,用于完成系统许可控制和过负荷控制;负载均衡控制单元206,用于在会话管理单元208查询下发节点请求的情况下,选择下发节点ID;以及会话管理单元208,用于对外部系统的请求消息向内部服务器接点建立连接队列和创建会话。
其中,连接管理单元202、流量控制单元204、负载均衡控制单元206、以及会话管理单元208之间可以相互连接。
另外,会话管理单元208在接收到外部系统的请求消息后,根据配置信息中的消息类型标识字段在请求消息中的起始字段和字段长度,解析出请求消息的类型标识,并根据配置信息中的消息类型标识判断请求是否需要查找前一个对话。
并且,在会话管理单元208判断需要查找前一个会话的情况下,根据请求消息的会话号查找下一个会话,找到下发的节点ID;在会话管理单元208判断不需要查找前一个会话的情况下,向负载均衡控制单元206查询下发节点请求,并且负载均衡控制单元206选择下发节点ID。会话管理单元208将请求消息下发到指定节点,指定节点在完成业务处理后,向会话管理单元208返回应答消息。
另外,会话管理单元208根据配置信息中该消息类型需要保持会话的标志在应答消息的起始长度和字段长度,解析出应答的保持会话标志,其中,在判断不需要保持会话的情况下,销毁会话,在判断需要保持会话的情况下,保留会话,并记录消息会话号和节点的对应关系。
在该集群管理器200中,连接管理单元202、会话管理单元208、负载均衡控制单元206、以及流量控制单元204之间可以相互连接。
其中,消息类型标识在所有消息字段中的位置是固定的。
此外,需要指出的是,如图2所示的服务器节点是完成具体业务处理的节点,可以分布式部署,其数量也可以随着系统容量的扩充而增加。
第二实施例
如图3所示,在本实施例中,提供了一种集群系统,其使用第一实施例中的集群管理器,该系统包括:一个或多个外部系统,用于请求业务处理;一个或多个服务器节点,用于处理来自一个或多个外部系统的业务处理请求;以及集群管理器,连接在一个或多个外部系统和一个或多个服务器节点之间,用于实现负载均衡功能。
第三实施例
下面将参照图4、图5和图6描述本发明的第三实施例,其中,图4是示出根据本实施例通信领域中请求消息类型及应答消息抽象组成的视图,图5是管理外部系统与集群系统通信的信令流程图,图6是根据本实施例的集群管理方法的流程图。
如图4所示,在通信领域,通讯协议请求一般可以包括:类型标识,用于唯一区分消息的种类(例如登陆消息请求、退出消息请求、具体应用处理消息请求等);会话标识,用于在多个请求消息之间保持一个会话的标识;应用相关的消息,其随着应用的不同而不同。应答消息一般可以包括:类型标识,用于唯一区分消息的种类(例如登陆消息应答、退出消息应答、具体应用处理消息应答等);会话保持标志,用于表示标识会话是否保持;以及应用相关的消息,其随着应用的不同而不同。并且,在上述消息中,消息类型标识在消息字段中的位置是固定的。
如图6所示,该集群管理方法包括以下步骤:S602,集群管理器收到来自外部系统的业务请求消息后,通过连接管理单元完成连接鉴权,将业务请求消息下发到会话管理单元;S604,会话管理单元接收到业务请求消息后,解析业务请求消息的消息类型标识,获得下发的节点ID;S606,会话管理单元根据节点ID将业务请求下发到指定节点;S608,指定节点完成业务处理,并向会话管理单元返回应答消息;S610,会话管理单元根据配置信息中的保持会话标志在应答消息的起始长度和字段长度,解析出应答消息的保持会话标志,在判断需要保持会话的情况下,保留会话,并记录消息会话号和节点的对应关系,在判断不需要保持会话的情况下,销毁会话;以及S612,会话管理单元将应答消息发送给外部系统。
其中,在步骤S604中,获得下发节点ID的处理还应该包括以下步骤:步骤A,会话管理单元判断业务请求是否需要查找前一个会话;步骤B,在判断业务请求需要查找前一个会话的情况下,会话管理单元根据消息会话号查找前一个会话,找到下发的节点ID;步骤C,在判断业务请求不需要查找前一个会话的情况下,会话管理单元创建会话信息,向负载均衡控制单元查询下发节点请求,负载均衡控制单元按照负载均衡策略。
其信令流程参见如图5所示的流程图。如图5所示,其步骤如下:(1)外部系统发送业务请求到集群系统的集群管理器;(2)连接管理完成对连接鉴权,通过流量控制模块检查license是否满足后下发到会话管理模块;(3)会话管理模块收到请求消息后,根据配置信息中消息类型标识字段在请求消息的起始长度和字段长度(一般在系统启动时预先把这些配置信息都加载到系统内存中,也可以配置起始长度和终止长度),解析出请求的消息类型标识是0000021,再根据配置信息中0000021是需要查找前一个会话,会话标识是起始位置8,长度20位,解析会话标识。会话管理器需要则根据消息会话号查找前一个会话,找到下发的节点ID;否则新创建会话信息,向负载均衡控制模块查询下发节点请求,负载均衡控制模块按照负载均衡策略,选择下发节点ID;(4)会话管理模块下发请求到指定节点;(5)指定节点完成业务处理,返回应答给会话管理模块;(6)会话管理模块首先根据会话标识起始位置和长度解析出会话标识0000022,读取配置信息中0000022需要保持会话的标志在应答消息的起始长度和字段长度,解析出应答的保持会话标志是不需要保持会话,销毁会话;(7)会话管理模块返回应答给外部系统。
以下将结合实例对第三实施例中的集群管理方法做进一步描述。
以下将以外部系统发起的业务请求为计费请求为例,进一步说明实施例的群集方法。图7是示出该实例的集群管理方法的信令流程图,在本实施例中,系统有系统A以及系统B,且系统A及B之间存在如下表所示的请求消息及应答消息,其中会话标识是客户端生成的,对其协议的具体描述参见表1和表2:
表1.请求消息
请求消息说明 |
类型标识 |
会话标识 |
其他应用信息 |
计费请求 |
0000011,长度8位 |
有这个字段,起始位置8,长度20位 |
用户标识、资费相关字段 |
计费确认请求 |
0000021,长度8位 |
有这个字段,起始位置8,长度20位 |
处理结果等 |
表2.应答消息
消息说明 |
类型标识 |
会话保持标志 |
其他应用信息 |
计费应答 |
0000012,长度8位 |
有,起始位置8,长度1位 |
处理结果等 |
计费确认应答 |
0000022,长度8位 |
无这个字段 |
处理结果等 |
如表1和表2所示,其中,系统当前配置情况如下:消息类型标识是0000021,其需要查找是否存在会话,并且会话标识字段在应答消息的起始长度是8位(从0开始),长度是1位。消息类型标识是0000012,其需要根据会话保持标志判断是否会话保持,并且会话保持标志字段在应答消息的起始长度是8位(从0开始),长度是1位。
之后,将按照第三实施例中提供的集群管理方法进行处理。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。