基于用户标识的负载均衡方法、装置及系统
技术领域
本发明涉及通信领域,具体地,涉及一种基于用户标识的负载均衡方法、装置及系统。
背景技术
随着中国互联网行业的高速增长,用户量的剧增,对服务器的负载压力提出了严峻的考验。服务器间的负载均衡,对用户量的承载能力均是各大技术服务提供商面临的主要难题。
传统的服务器的分配方案,主要存在以下两种:
(一)在同一个服务器组中的几台服务器间采用即时通信,如图1所示,当用户随机连接其中一台服务器时,若此服务器处于闲置状态,即可与用户之间连接,否则,此服务器在其服务器群中寻找空闲服务器,再告知用户转向空闲服务器,此方法的弊端是增加服务器间的额外通信开销,增加服务器负载,且负载均衡是相对的;
(二)在服务器组与用户之间,插入一台调度服务器,如图2所示,此调度服务器与每台服务器进行实时通信,并将用户分配到空闲的服务器中,从而达到负载均衡,但此类做法的弊端是需要增加额外的一台代理服务器。
综上所述,目前的服务器负载均衡方案没有相对完美的负载均衡机制,服务器负载波动大,无法做到真正的均衡,从而导致了无法应对网络用户量增加的问题。
发明内容
本发明实施例的主要目的在于提供一种基于用户标识的负载均衡方法、装置及系统,以解决现有技术缺少简单而有效的服务器负载均衡方案、从而无法有效应对网络用户量增加的问题。
为了实现上述目的,本发明实施例提供一种基于用户标识的负载均衡方法,该方法包括:接收来自客户端的包含PeerID(用户标识号)的登陆数据,其中,所述PeerID由所述客户端随机生成;根据配置列表验证所述PeerID是否与自身匹配,所述的配置列表包括系统中的服务器信息和PeerID的映射关系;如果根据映射关系判断所述PeerID与自身不匹配,则查找与所述PeerID匹配的服务器,并将与所述PeerID匹配的服务器信息发送给客户端;如果所述PeerID与自身匹配,判断所述PeerID是否唯一;如果所述PeerID唯一,则生成登陆成功信息并发送给客户端,否则,发送PeerID非唯一信息给客户端,以使客户端重新生成新的PeerID。
根据配置列表验证所述PeerID是否与自身匹配包括:根据配置列表的映射关系判断所述PeerID是否属于当前服务器分配的PeerID区间段;如果属于当前服务器分配的PeerID区间段,则表示所述PeerID与自身匹配。
查找与所述PeerID匹配的服务器,并将与所述PeerID匹配的服务器信息发送给客户端包括:根据配置列表查找与所述PeerID匹配的服务器;获取与所述PeerID匹配的服务器的IP地址;将与所述PeerID匹配的服务器的IP地址发送给所述客户端,以使所述客户端重新发送所述包含PeerID的登陆数据至与所述PeerID匹配的服务器。
本发明实施例还提供一种基于用户标识的负载均衡装置,所述装置包括:登陆数据接收单元,用于接收来自客户端的包含PeerID的登陆数据,其中,所述PeerID由所述客户端随机生成;数据匹配单元,用于根据配置列表验证所述PeerID是否与自身匹配,所述的配置列表包括系统中的服务器信息和PeerID的映射关系;匹配服务器查找单元,用于在根据映射关系判断所述PeerID与自身不匹配时,查找与所述PeerID匹配的服务器;匹配服务器信息发送单元,用于将与所述PeerID匹配的服务器信息发送给客户端;数据唯一性判断单元,用于在所述PeerID与自身匹配时,判断所述PeerID是否唯一;登陆成功信息发送单元,用于在所述PeerID唯一时,生成登陆成功信息并发送给客户端;非唯一信息发送单元,用于在所述PeerID非唯一时,发送PeerID非唯一信息给客户端,以使客户端重新生成新的PeerID。
上述数据匹配单元具体用于:根据配置列表的映射关系判断所述PeerID是否属于当前服务器分配的PeerID区间段;如果属于当前服务器分配的PeerID区间段,则表示所述PeerID与自身匹配。
上述匹配服务器查找单元包括:匹配服务器查找模块,用于根据配置列表查找与所述PeerID匹配的服务器;服务器IP地址获取模块,用于获取与所述PeerID匹配的服务器的IP地址。
上述匹配服务器信息发送单元具体用于:将与所述PeerID匹配的服务器的IP地址发送给所述客户端,以使所述客户端重新发送所述包含PeerID的登陆数据至与所述PeerID匹配的服务器。
本发明实施例还提供一种基于用户标识的负载均衡系统,该系统包括:上述的基于用户标识的负载均衡装置。
借助于上述技术方案至少之一,通过根据PeerID来实现客户端登陆到合适的服务器,相比于传统服务器分配方案,本发明实施例提供的技术方案在不添加调度服务器、且不增加服务器额外负载的基础上,能够较好地实现服务器的负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是传统服务器分配方案的流程图;
图2是传统服务器分配方案的另一流程图;
图3是根据本发明实施例的基于用户标识的负载均衡方法的流程图;
图4是根据本发明实施例的负载均衡方法具体流程图;
图5是根据本发明实施例的基于用户标识的负载均衡装置的结构框图;
图6是根据本发明实施例的匹配服务器查找单元的结构框图;
图7是根据本发明实施例的基于用户标识的负载均衡系统的结构框图;
图8是根据本发明实施例的客户端的工作原理示意图;
图9是根据本发明实施例的服务器端的工作原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中的服务器的负载均衡方案无法有效地应对网络用户量增加的情况,基于此,本发明实施例提供一种基于用户标识的负载均衡方法、装置及系统,以解决上述问题。以下结合附图对本发明进行详细说明。
实施例一
本发明实施例提供一种基于用户标识的负载均衡方法,图3是该方法的流程图,如图3所示,该方法包括:
步骤301,接收来自客户端的包含PeerID的登陆数据,其中,PeerID由客户端随机生成;
步骤302,根据配置列表验证PeerID是否与自身匹配,配置列表包括系统中的服务器信息和PeerID的映射关系;
步骤303,如果根据映射关系判断PeerID与自身不匹配,则查找与PeerID匹配的服务器,并将与PeerID匹配的服务器信息发送给客户端;
步骤304,如果PeerID与自身匹配,判断PeerID是否唯一;
步骤305,如果PeerID唯一,则生成登陆成功信息并发送给客户端,否则,进行步骤306;
步骤306,发送PeerID非唯一信息给客户端,以使客户端重新生成新的PeerID。
由以上描述可知,通过根据PeerID来判断客户端是否能够登陆成功到合适的服务器,相比于传统服务器分配方案,本发明实施例提供的技术方案在不添加调度服务器、且不增加服务器额外负载的基础上,能够较好地实现服务器的负载均衡。
具体地,上述步骤302中根据配置列表验证PeerID是否与自身匹配包括:根据配置列表的映射关系判断所述PeerID是否属于当前服务器分配的PeerID区间段;如果属于当前服务器分配的PeerID区间段,则表示PeerID与自身匹配。
例如,设定服务器编号id范围从0-99,有4台服务器,则服务器配置文件中会列出a服务器、b服务器、c服务器、d服务器。服务器配置文件中a的id区间段为0-24,b的区间段为25-49,c、d以此向后类推。当随机分配的PeerID为40的客户端登录时如果找到b则表示匹配成功,如果登录到其它三台,则这三台服务器会告诉客户端应该登录到b。
上述PeerID的分布范围会根据用户量的级别而做出调整,该PeerID值对应于PeerID所属服务器的id区间段。在用户量数量级发生变化时,服务器对应调整。服务器的多少对应peerID的分配数量级,由服务器的设置来决定peerID的数量级。
上述步骤303中查找与PeerID匹配的服务器,并将与PeerID匹配的服务器信息发送给客户端包括:根据配置列表查找与PeerID匹配的服务器;获取与PeerID匹配的服务器的IP地址;将与PeerID匹配的服务器的IP地址发送给客户端,以使客户端重新发送包含PeerID的登陆数据至与PeerID匹配的服务器。
图4是本发明实施例的负载均衡方法具体流程图,如图4所示,首先,用户向匹配服务器发送请求,之后执行步骤401:
步骤401,客户端第一次启动时,随机生成一个PeerID;
步骤402,用户向服务器组中的任意一台服务器发送请求;
步骤403,服务器根据配置文件检查此PeerID是否匹配此服务器;在实际操作中,管理员根据用户量及服务器的负载情况确定整个服务器组的数量以及优先级顺序,并写入到服务器的配置文件,服务器根据配置文件中服务器的优先级顺序为PeerID顺序分段,并分析出各个服务器对应的PeerID区间段,包括自身对应的PeerID区间段;服务器根据配置文件中每台服务器匹配的PeerID区间验证此PeerID是否与本服务器相匹配;如果匹配,进行步骤404,否则进行步骤406;
步骤404,服务器检验此PeerID是否唯一;如果唯一,则进行步骤405,否则,进行步骤407;
步骤405,匹配服务器确定了用户的PeerID的唯一性后,回应请求,并建立连接。
步骤406,服务器将与PeerID匹配的服务器IP地址返回给用户,用户向匹配服务器发起再次请求,已达到双方匹配的目的;
步骤407,服务器将非唯一消息返回至客户端,客户端将重新生成PeerID给用户,并执行步骤401-404,直至PeerID唯一为止。
实施例二
本发明实施例还提供一种基于用户标识的负载均衡装置,优选地,该装置用于实现实施例一中的方法,如图5所示,该装置包括:
登陆数据接收单元1,用于接收来自客户端的包含PeerID的登陆数据,其中,PeerID由客户端随机生成;
数据匹配单元2,用于根据配置列表验证PeerID是否与自身匹配,配置列表包括系统中的服务器信息和PeerID的映射关系;
匹配服务器查找单元3,用于在根据映射关系判断PeerID与自身不匹配时,查找与PeerID匹配的服务器;
匹配服务器信息发送单元4,用于将与PeerID匹配的服务器信息发送给客户端;
数据唯一性判断单元5,用于在PeerID与自身匹配时,判断PeerID是否唯一;
登陆成功信息发送单元6,用于在PeerID唯一时,生成登陆成功信息并发送给客户端;
非唯一信息发送单元7,用于在PeerID非唯一时,发送PeerID非唯一信息给客户端,以使客户端重新生成新的PeerID。
由以上描述可知,该装置通过根据PeerID来判断客户端是否能够登陆成功到合适的服务器,相比于传统服务器分配方案,本发明实施例提供的技术方案在不添加调度服务器、且不增加服务器额外负载的基础上,能够较好地实现服务器的负载均衡。
具体地,如图6所示,匹配服务器查找单元3包括:
匹配服务器查找模块31,用于根据配置列表查找与PeerID匹配的服务器;
服务器IP地址获取模块32,用于获取与PeerID匹配的服务器的IP地址;
上述数据匹配单元2具体用于:根据配置列表的映射关系判断所述PeerID是否属于当前服务器分配的PeerID区间段;如果属于当前服务器分配的PeerID区间段,则表示PeerID与自身匹配。
上述匹配服务器信息发送单元4具体用于:将与PeerID匹配的服务器的IP地址发送给客户端,以使客户端重新发送包含PeerID的登陆数据至与PeerID匹配的服务器。
上述各单元、各模块具体的执行过程,可以参见上述实施例一中的描述,此处不再赘述。
在具体实施过程中,上述负载均衡装置可以设置在服务器端,例如,与服务器合一设置。
实施例三
本发明实施例还提供一种基于用户标识的负载均衡系统,如图7所示,该系统包括上述实施例二中的负载均衡装置以及客户端,在实际操作中,负载均衡装置与服务器可以合一设置。
客户端主要是移动终端设备,如图8所示,客户端的工作原理是:当客户端设备启动后,客户端的PeerID生成函数将随机生成一个32-64位的PeerID;之后,客户端设备将包含有PeerID信息的登录包通过网络传输协议发送至服务器。
服务器端包括负载均衡装置,如图9所示,服务器端的工作原理是:服务器端的消息处理模块收到来自客户端的包含PeerID信息的登录包;消息处理模块查看服务器内部的配置列表,并验证PeerID是否跟自身匹配;若PeerID与本服务器不匹配,则验证PeerID匹配函数会将信息传递给消息处理函数,消息处理模块将把与PeerID匹配的服务器信息返回给客户端;若服务器与PeerID匹配,则检验PeerID是否在服务器上是唯一的;若PeerID是唯一的,则消息处理模块向客户端发送回应,告知登录成功;若PeerID不是唯一的,则消息处理模块向客户端发送回应,告知需要登录到哪台服务器。
通过客户端与服务器端根据PeerID来选择合适的服务器,可以有效地进行负载均衡问题,并且不需要添加调度服务器、也不增加服务器额外负载,相比于现有技术,当用户量增加时,该系统能够较好地实现服务器的负载均衡。
综上所述,本发明实施例提供的技术方案,一方面可以在不添加任何调度服务器的情况下简单且高效地实现承载大量用户的服务器的负载均衡,另一方面在增加和减少服务器的情况下能够轻松地修改配置文件,使服务器的工作效率得以最大化,同时减少服务器之间的通信,减少服务器的负载,提高运行速度,并且提高了用户归属的稳定性,更好地提升了用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。