一种提高计算机网络系统容量的方法

文档序号:6588900阅读:444来源:国知局
专利名称:一种提高计算机网络系统容量的方法
技术领域
本发明涉及计算机网络系统中用户端与服务器之间的交互技术,更具体地说,涉及一种提高计算机网络系统容量的方法。


图1所示,当系统容量较小,只有一台服务器,在这种系统中,每个用户端处理信息都必须与唯一的服务器打交道。当用户端越来越多时,服务器就处理不过来。
如图2所示,为了增加容量,常见的改进是使用多台具有相同功能的服务器来处理用户端的请求,并增加一台转发服务器以对用户请求进行分流。可见,在这种计算机网络系统中,专门设置了一个转发服务器用于转发用户端的请求;真正的信息处理交给后面的一组服务器处理。转发服务器相对于以前处理用户端请求的服务器而言,处理负担大大降低,系统容量得到进一步增加。对用户端来说,服务器还是只有一个,它并不需要知道除转发服务器以外的服务器。
配置有转发服务器的计算机网络系统虽然容量得到了增加,但是所有用户端还是必须经过唯一的转发服务器。如果用户端数量继续增加,转发服务器又会成为系统的瓶颈。
本发明解决其技术问题所采用的技术方案是一种提高计算机网络系统容量的方法,所述计算机网络系统包括M个不同的用户,以及N个用于执行相同功能的服务器,其特征在于,所述计算机网络系统为每一位所述用户分配一个用户标识,每一位所述用户按以下步骤与一个对应的服务器进行通信(1)、根据所述用户标识推算出与所述用户端对应的服务器的序号;(2)、用户与所述序号指向的服务器进行通信。
根据本发明的方法,所述用户标识可以是由纯数字组成的用户号码;还可以是是由纯字母、字母加数字、字母加其它字符、或者字母加数字再加其它字符所组成的用户名。
根据本发明的方法,对于采用所述用户号码或用户名的情况,在所述步骤(1)中,可取其前P个字符进行分组,其中P可等于或大于1,每一组对应一个序号的服务器,每一个序号的服务器可对应一个或多个分组。
根据本发明的方法,对于采用所述用户名的情况,在所述步骤(1)中,可在用户端采用散列(Hash)函数将所述用户名转换为以数字表示的内部用户号,再根据所述内部用户号推算出与所述用户端对应的服务器的序号。例如使用MD5函数将所述用户名转换为128位的内部用户号。
根据本发明的方法,对于采用所述用户号码或内部用户号的情况,可按由小到大顺序分为N个范围段,每一个范围段对应一个服务器的序号;还可以所述用户号码或内部用户号除以所述服务器数目N所得的余数作为与所述用户端对应的服务器的序号。如果所述内部用户号太大,还可取各个内部用户号的特定位数除以所述服务器数目N,以所得的余数作为与所述用户端对应的服务器的序号。
根据本发明的方法,当用户数目或服务器数目改变时,可按以下步骤更新选择服务器的选择标准a、服务器向用户端发送新的服务器选择标准;b、用户端使用收到的所述新服务器选择标准替代原有的服务器选择标准;c、用户端使用新的服务器选择标准选择与之对应的服务器。
由上述方案可见,本发明可在用户端直接实现转发服务器的功能,系统中不再需要转发服务器,从而消除了增加系统容量的瓶颈。当用户数目增加时,只需要增加服务器数目,并适当更新或修改服务器的序号的选择规则,将一部分用户分流到新增服务器去即可,这样计算机网络系统的容量几乎可以无限制的增加。
本发明中,当所述用户标识是由纯数字组成的用户号码时,或者是由纯字母、字母加数字、字母加其它字符、或者字母加数字再加其它字符所组成的用户名时,都可取用户号码或用户名的前P个字符进行分组,其中P可等于或大于1,每一组对应一个序号的服务器,每一个序号的服务器可对应一个或多个分组。
例如当系统容量较小时,可取P=1,即以用户号码或用户名的第1位字符来进行分组,按表1推算出与所述用户端对应的服务器的序号,其中,以0开头的用户号码或用户名都分到服务器0,以a开头的用户号码或用户名都分到服务器6,依此类推。
表1

当系统容量较大时,可取P>1,表2中以P=2进行示例,此时按表2推算出与所述用户端对应的服务器的序号,其中,以00开头的用户号码或用户名都分到服务器0,以ac开头的用户号码或用户名都分到服务器27,依此类推。
表2


对于使用由纯字母、字母加数字、字母加其它字符、或者字母加数字再加其它字符所组成的用户名作为标识的系统,根据用户名查找该用户对应的信息很耗费服务器资源。为了进一步提高系统容量,可以将这部分工作也转移到用户端。在用户端采用散列(Hash)函数将用户名转换为以数字表示的内部用户号,再根据内部用户号推算出与所述用户端对应的服务器的序号。例如使用MD5函数将所述用户名转换为128位的内部用户号。MD5,即Message Digest version 5,可译作消息摘要,是一种散列函数,可以将任意长度的消息数据变换为128位的摘要,没有两个消息可以产生一样的摘要,也不可能找到一个消息使得他的摘要为指定值,即不可反推。
本发明中,内部用户号与服务器的序号之间的对应关系可采用以下两种方法1、取内部用户号除以服务器数目N所得的余数作为与所述用户端对应的服务器的序号,如表3所示,其中,整除时对应服务器0、例如余数为1是对应服务器1,依此类推,余数为N-1时对应服务器N-1。
表3

如果有需要,也可以由多个余数对应同一个服务器,以平衡服务器的负担,即余数与服务器的对应关系是一对一或者多对一关系。
2、将所有的内部用户号按由小到大顺序分为N个范围段,每一个范围段对应一个服务器的序号,如表4所示,其中,位于范围段0-a0的内部用户号对应服务器1、位于范围段a0-a1的内部用户号对应服务器1,依此类推。
表4

如果内部用户号太大,还可以使用内部用户号的一部分,如最低32位进行运算。
本发明中,当用户标识是由纯数字组成的用户号码时,也可采用上述方法1和方法2来选择与所述用户端对应服务器的序号。
本发明的方法在用户端直接实现转发服务器的功能,当用户数目增加时,只需要增加服务器数目,并适当更新或修改服务器的序号的选择规则,将一部分用户分流到新增服务器去即可,这样计算机网络系统的容量几乎可以无限制的增加。当用户数目或服务器数目改变时,可按以下步骤更新选择服务器的选择标准a、服务器向用户端发送新的服务器选择标准;b、用户端使用收到的所述新服务器选择标准替代原有的服务器选择标准;
c、用户端使用新的服务器选择标准选择与之对应的服务器。
本发明的方法可以使用于互联网的即时聊天系统。在即时聊天系统中,需要使用服务器保存每个用户的当前网络地址,用户向服务器注册自己的当前网络地址,并向服务器查询自己希望与其聊天的用户的当前网络地址。
用户端计算机使用本发明的其中一种方法更新网络地址的流程如下(1)、用户端计算机采用散列函数将自己的用户名转换为内部用户号;(2)、用户端计算机根据自己的内部用户号推算出与所述用户端对应的服务器的序号;(3)、用户端计算机将自己的内部用户号、用户名、当前网络地址、更新请求等信息发送给该序号所指向的服务器;(4)、服务器收到用户的请求后将用户信息保存。
用户端计算机使用本发明的方法查询其它用户的网络地址的流程如下(1)、用户端计算机采用散列函数将目标用户的用户名转换为目标内部用户号;(2)、用户端计算机根据目标内部用户号算出与所述用户端对应的目标服务器的序号;(3)、用户端计算机将目标内部用户号、目标用户名以及查询请求发送到所述目标服务器;(4)、目标服务器向发出请求的用户端计算机反馈目标用户的信息。
权利要求
1.一种提高计算机网络系统容量的方法,所述计算机网络系统包括M个不同的用户,以及N个用于执行相同功能的服务器,其特征在于,所述计算机网络系统为每一位所述用户分配一个用户标识,每一位所述用户按以下步骤与一个对应的服务器进行通信(1)、根据所述用户标识推算出与所述用户端对应的服务器的序号;(2)、用户与所述序号指向的服务器进行通信。
2.根据权利要求1所述的方法,其特征在于,所述用户标识是由纯数字组成的用户号码。
3.根据权利要求1所述的方法,其特征在于,所述用户标识是由纯字母、字母加数字、字母加其它字符、或者字母加数字再加其它字符所组成的用户名。
4.根据权利要求2或3所述的方法,其特征在于,在所述步骤(1)中,取所述用户号码或用户名的前P个字符进行分组,其中P可等于或大于1,每一组对应一个序号的服务器,每一个序号的服务器可对应一个或多个分组。
5.根据权利要求3所述的方法,其特征在于,在所述步骤(1)中,采用散列函数将所述用户名转换为以数字表示的内部用户号,再根据所述内部用户号推算出与所述用户端对应的服务器的序号。
6.根据权利要求2或5所述的方法,其特征在于,在所述步骤(1)中,将所有的用户号码或所有的内部用户号按由小到大顺序分为与所述服务器数目相等的N个范围段,每一个范围段对应一个服务器的序号。
7.根据权利要求2或5所述的方法,其特征在于,在所述步骤(1)中,可取所述用户号码或内部用户号除以所述服务器数目N所得的余数作为与所述用户端对应的服务器的序号。
8.根据权利要求5所述的方法,其特征在于,还可取各个内部用户号的特定位数除以所述服务器数目N,以所得的余数作为与所述用户端对应的服务器的序号。
9.根据权利要求5所述的方法,其特征在于,在所述步骤(1)中,使用MD5函数将所述用户名转换为128位的内部用户号。
10.根据权利要求1-3中任一项所述的方法,其特征在于,当用户数目或服务器数目改变时,可按以下步骤更新选择服务器的选择标准a、服务器向用户端发送新的服务器选择标准;b、用户端使用收到的所述新服务器选择标准替代原有的服务器选择标准;c、用户端使用新的服务器选择标准选择与之对应的服务器。
全文摘要
本发明涉及一种提高计算机网络系统容量的方法,所述计算机网络系统包括M个不同的用户,以及N个用于执行相同功能的服务器,其中M等于或大于N,其特征在于,所述计算机网络系统为每一位所述用户分配一个用户标识,每一位所述用户按以下步骤与一个对应的服务器进行通信(1)根据所述用户标识推算出与所述用户端对应的服务器的序号;(2)用户与所述序号指向的服务器进行通信。本发明中,可在用户端直接实现转发服务器的功能,系统中不再需要转发服务器,从而消除了增加系统容量的瓶颈。
文档编号G06F15/16GK1464414SQ02134279
公开日2003年12月31日 申请日期2002年6月28日 优先权日2002年6月28日
发明者杨俊群 申请人:杨俊群
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1