一种连接建立方法和装置的制造方法_2

文档序号:9923879阅读:来源:国知局
请求,以建立到数据库系统的N个连接,其中,N为大于等于I的自然数。
[0047]由以上描述可以看出,在本申请中,业务服务器集群中的业务服务器根据本设备所在的分组计算本设备开始建立连接的时间,在到达所述开始建立连接的时间时,向数据库系统发送连接请求,从而可以分批错时与数据库系统建立连接,避免数据库系统访问风暴。
[0048]请参考图2,图2是本申请另一实施例中连接建立方法的流程示意图,所述连接建立方法可以用于服务器中,包括以下步骤:
[0049]步骤201,根据本设备所在的分组计算开始建立连接的时间。
[0050]在本实施例中,所述本设备所在的分组可以由管理人员预先进行设置,也可以由业务服务器集群中的管理服务器根据预设的策略为各个业务服务器分配组号,本申请对此不作特殊限制。
[0051]以管理人员预先为业务服务器集群中的业务服务器设置分组为例,假设业务服务器集群中有1000台业务服务器,则管理人员可以将该业务服务器集群中的业务服务器分为5个分组,每个分组中包括有200台业务服务器。当然,管理人员也可以将该业务服务器集群中的业务服务器分为10个分组,则每个分组中包括有100台业务服务器。管理人员在设置好分组后,为每台业务服务器下发其所在分组的组号以供业务服务器保存。所述分组的组号可以用来表示与数据库系统建立连接的顺序,比如:组号最小的分组中的业务服务器最先与数据库系统建立连接,组号次小的分组中的业务服务器次先与数据库系统建立连接,组号最大的分组中的业务服务器最后与数据库系统建立连接。所述分组的组号可以从I开始,也可以从其他数值开始。优选地,可以将所述分组的组号设置为从O开始,以方便服务器根据本设备所在分组的组号计算开始建立连接的时间。
[0052]在本步骤中,可以用本设备所在的分组的组号乘以预设的连接耗时以得到本设备开始建立连接的时间。其中,所述预设的连接耗时通常由管理人员根据每个分组中业务服务器建立批量连接所消耗的时间确定。假设,每个分组中业务服务器建立到数据库系统的批量连接所消耗的时间为10ms-50ms,则可以将所述连接耗时设置为10ms-50ms中的任一数值。
[0053]举例来说,假设所述预设的连接耗时为10ms,管理人员将某业务服务器集群中的业务服务器分为5个分组,分别为:分组0、分组1、…、分组4。如果该业务服务器集群中的业务服务器I所在的分组的组号为0,则该业务服务器I用其组号乘以所述连接耗时,即OX 10ms,得到的开始建立连接的时间为0ms。如果该业务服务器集群中的业务服务器2所在的分组的组号为3,则该业务服务器2用其组号乘以所述连接耗时,即3 X 10ms,得到的开始建立连接的时间为30msο
[0054]需要说明的是,如果管理人员将上述业务服务器集群中的业务服务器分为5个分组,分别为:分组1、分组2、…、分组5,则在计算上述开始建立连接的时间时,用所述组号减去一之后得到的差值乘以所述连接耗时。如果该业务服务器集群中的业务服务器I所在的分组的组号为1,则该业务服务器I用其组号减去一之后得到的差值乘以所述连接耗时,即(1-1) X 10ms,得到的开始建立连接的时间仍然为0ms。在本步骤中,本领域技术人员可以依据相关技术设置业务服务器集群分组的组号以及计算所述开始建立连接的时间,本申请对此不作特殊限制。
[0055]步骤202,在到达所述开始建立连接的时间前,如果接收到需要访问数据库系统的业务请求且当前没有可用的连接,则向所述数据库系统发送一个连接请求,以建立到所述数据库系统的一个连接。
[0056]基于前述步骤201,在计算得到所述开始建立连接的时间后,可以通过定时器来计时,在到达所述开始建立连接的时间前进行等待,不发送批量的连接请求到数据库系统,比如:可以通过线程延时来实现等待。
[0057]然而,在实际实现的过程中,业务服务器集群在启动后,发送给业务服务器集群的业务请求可能会被发送到任意一台业务服务器上,如果在到达业务服务器的开始建立连接的时间之前,该业务服务器接收到需要访问数据库系统的业务请求,此时该业务服务器中还不存在到所述数据库系统的连接,为了处理所述业务请求,该业务服务器向数据库系统发送一个连接请求,以建立到所述数据库系统的一个连接,并基于该连接与所述数据库系统进行通信以处理所述业务请求。
[0058]举例来说,假设业务服务器2的开始建立连接的时间为30ms,则如果在到达30ms之前,比如:业务服务器2在1ms的时候接收一个需要访问数据库系统的业务请求1,由于在1ms的时候业务服务器2中还不存在到所述数据库系统的连接,则业务服务器2发送I个连接请求到数据库系统,与所述数据库系统建立I个连接以处理所述业务请求I。
[0059]进一步地,如果所述业务服务器2在20ms的时候又接收到一个需要访问数据库系统的业务请求2,此时业务服务器2中已经存在I个到数据库系统的连接,则判断该连接当前是否可用,如果该连接当前可用,则使用该连接以处理该业务请求2,如果该连接当前不可用,比如:该连接正在被1ms接收到的业务请求I使用,则业务服务器2再次发送I个连接请求到数据库系统,与所述数据库系统建立另I个连接以处理所述业务请求2。
[0060]步骤203,在到达所述开始建立连接的时间时,判断当前本设备到所述数据库系统的连接的数量M是否小于连接下限值。如果当前本设备到所述数据库系统的连接的数量M小于所述连接下限值,则执行步骤204。如果当前本设备到所述数据库系统的连接的数量M大于等于所述连接下限值,则执行步骤205。
[0061]在本实施例中,所述连接下限值和所述连接上限值通常由管理人员进行设置,其中,所述连接下限值是为了确保业务服务器处理业务请求所建立的到数据库系统的连接数量的最小值,所述连接上限值为业务服务器到数据库系统的连接数量的最大值。
[0062]在本步骤中,在到达所述开始建立连接的时间时,先判断当前本设备到所述数据库系统的连接的数量M是否小于所述连接下限值。其中,M为大于等于0,且小于连接上限值的自然数。如果M小于所述连接下限值,则说明本设备还需要建立到所述数据库系统的连接,执行步骤204。如果M大于等于所述连接下限值,则本设备也可以继续建立到所述数据库系统的连接,执行步骤205。当然,在M大于等于所述连接下限值时,本设备也可以不再继续建立到所述数据库系统的连接,本申请对此不作特殊限制。
[0063]步骤204,向所述数据库系统发送N个连接请求,N为所述连接上限值或连接下限值与M的差值。
[0064]基于前述步骤203的判断结果,在当前本设备到所述数据库系统的连接的数量M小于所述连接下限值时,向所述数据库系统发送连接请求,以继续建立和数据库系统的连接。具体地,在本步骤中,向数据库系统发送N个连接请求,其中,N可以为所述连接上限值与M的差值,N也可以为所述连接下限值与M的差值,具体可以由开发人员进行设置,本申请对此不作特殊限制。
[0065]举例来说,假设某业务服务器的连接上限值为10,连接下限值为3,如果当前本设备到所述数据库系统的连接的数量M为2,则在本步骤中,可以向数据库系统发送8个或I个连接请
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1