发明内容
为克服相关技术中存在的问题,本发明提供一种信息处理方法及装置。
根据本发明实施例的第一方面,提供一种信息处理方法,应用于服务器,所述服务器为服务器组中的一个服务器,所述服务器组中的每个服务器分别位于不同的位置,且分别存储有目标活动账户的活动信息;所述方法包括:
判断是否接收到终端发送的、用于获取所述目标活动账户的活动信息的获取请求;所述获取请求携带所述终端的位置信息、所述目标活动账户的目标活动标识以及所需获取的活动信息的目标个数;
当接收到所述获取请求时,判断本地存储的所述目标活动标识对应的目标活动账户的活动信息的个数是否大于或等于所述获取请求所需获取的活动信息的目标个数;
当大于或等于所述获取请求所需获取的活动信息的目标个数时,从本地获取目标个数个活动信息;并将获取的目标个数个活动信息发送给所述终端;
当小于所述获取请求所需获取的活动信息的目标个数时,根据所述终端的位置信息,在所述服务器组中的未接收过所述获取请求的服务器中选择一个距离所述终端最近的服务器;将所述获取请求发送给选择出的服务器,以使选择出的服务器根据所述获取请求执行所述判断本地存储的所述目标活动账户的活动信息的个数是否大于或等于所述获取请求所需获取的活动信息的目标个数的步骤。
其中,所述根据所述终端的位置信息,在所述服务器组中的未接收过所述获取请求的服务器中选择一个距离所述终端最近的服务器,包括:
获取本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系;
从第一对应关系中获取包括所有未接收过所述获取请求的服务器的服务器标识的记录;
在包括所有未接收过所述获取请求的服务器的服务器标识的记录中获取包括所述目标活动标识的记录;
分别在每个包括所述目标活动标识的记录中获取服务器的位置信息;
在获取的服务器的位置信息中选择一个与所述终端的位置信息之间距离最短的服务器的位置信息;
在所述第一对应关系中确定出包括与所述终端的位置信息之间距离最短的服务器的位置信息的记录;
将包括与所述终端的位置信息之间距离最短的服务器的位置信息的记录中的服务器标识对应的服务器作为距离所述终端最近的一个服务器。
进一步地,所述方法还包括:
创建目标活动账户;所述目标活动账户包括多个活动信息及所述目标活动账户的目标活动标识;
获取用于存储所述多个活动信息的多个目标服务器,以及获取每个目标服务器的位置信息;
根据所述目标活动账户的活动信息的个数以及目标服务器的个数,为每个目标服务器分配活动信息;
对于每个目标服务器,在所述目标服务器的目标数据库的目标数据库表中存储为所述目标服务器分配的活动信息;将所述目标服务器的目标服务器标识、所述目标数据库的目标数据库标识、所述目标数据库表的目标数据库表标识、所述目标活动账户的目标活动标识、所述目标服务器的位置信息存储在本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系中。
其中,所述获取用于存储所述多个活动信息的多个目标服务器,包括:
获取本地存储的服务器标识、数据库标识与未存储信息的数据库表标识三者之间的第二对应关系;
获取所述第二应关系中包括的所有的服务器标识;
在获取的所有的服务器标识中,对相同的服务器标识进行去除操作,只保留相同的服务器标识中的一个服务器标识;
将保留的服务器标识对应的服务器均作为目标服务器。
其中,所述在所述目标服务器的目标数据库的目标数据库表中存储为所述目标服务器分配的活动信息,包括:
从所述第二对应关系中获取一个包括所述目标服务器的目标记录;
将所述目标记录中的数据库标识作为目标数据库标识,以及将所述目标记录中的数据库表标识作为目标数据库表标识;
将为所述目标服务器分配的活动信息存储在所述目标服务器中的目标数据库中的目标数据库表中;所述目标数据库为所述目标数据库标识对应的数据库;所述目标数据库表为所述目标数据库表标识对应的数据库表。
根据本发明实施例的第二方面,提供一种信息处理装置,所述装置包括:
第一判断模块,用于判断是否接收到终端发送的、用于获取目标活动账户的活动信息的获取请求;所述获取请求携带所述终端的位置信息、所述目标活动账户的目标活动标识以及所需获取的活动信息的目标个数;
第二判断模块,用于当接收到所述获取请求时,判断本地存储的所述目标活动标识对应的目标活动账户的活动信息的个数是否大于或等于所述获取请求所需获取的活动信息的目标个数;
第一获取模块,用于当大于或等于所述获取请求所需获取的活动信息的目标个数时,从本地获取目标个数个活动信息;
第一发送模块,用于将获取的目标个数个活动信息发送给所述终端;
选择模块,用于当小于所述获取请求所需获取的活动信息的目标个数时,根据所述终端的位置信息,在所述服务器组中的未接收过所述获取请求的服务器中选择一个距离所述终端最近的服务器;
第二发送模块,用于将所述获取请求发送给选择出的服务器,以使选择出的服务器根据所述获取请求执行所述判断本地存储的所述目标活动账户的活动信息的个数是否大于或等于所述获取请求所需获取的活动信息的目标个数的步骤。
其中,所述选择模块包括:
第一获取单元,用于获取本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系;
第二获取单元,用于从第一对应关系中获取包括所有未接收过所述获取请求的服务器的服务器标识的记录;
第三获取单元,用于在包括所有未接收过所述获取请求的服务器的服务器标识的记录中获取包括所述目标活动标识的记录;
第四获取单元,用于分别在每个包括所述目标活动标识的记录中获取服务器的位置信息;
选择单元,用于在获取的服务器的位置信息中选择一个与所述终端的位置信息之间距离最短的服务器的位置信息;
第一确定单元,用于在所述第一对应关系中确定出包括与所述终端的位置信息之间距离最短的服务器的位置信息的记录;
第二确定单元,用于将包括与所述终端的位置信息之间距离最短的服务器的位置信息的记录中的服务器标识对应的服务器作为距离所述终端最近的一个服务器。
进一步地,所述装置还包括:
创建模块,用于创建目标活动账户;所述目标活动账户包括多个活动信息及所述目标活动账户的目标活动标识;
第二获取模块,用于获取用于存储所述多个活动信息的多个目标服务器,以及获取每个目标服务器的位置信息;
分配模块,用于根据所述目标活动账户的活动信息的个数以及目标服务器的个数,为每个目标服务器分配活动信息;
第一存储模块,用于对于每个目标服务器,在所述目标服务器的目标数据库的目标数据库表中存储为所述目标服务器分配的活动信息;
第二存储模块,用于将所述目标服务器的目标服务器标识、所述目标数据库的目标数据库标识、所述目标数据库表的目标数据库表标识、所述目标活动账户的目标活动标识、所述目标服务器的位置信息存储在本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系中。
其中,所述第二获取模块包括:
第五获取单元,用于获取本地存储的服务器标识、数据库标识与未存储信息的数据库表标识三者之间的第二对应关系;
第六获取单元,用于获取所述第二应关系中包括的所有的服务器标识;
去除单元,用于在获取的所有的服务器标识中,对相同的服务器标识进行去除操作,只保留相同的服务器标识中的一个服务器标识;
第三确定单元,用于将保留的服务器标识对应的服务器均作为目标服务器。
其中,所述第一存储模块包括:
第七获取单元,从所述第二对应关系中获取一个包括所述目标服务器的目标记录;
第四确定单元,用于将所述目标记录中的数据库标识作为目标数据库标识,以及将所述目标记录中的数据库表标识作为目标数据库表标识;
存储单元,用于将为所述目标服务器分配的活动信息存储在所述目标服务器中的目标数据库中的目标数据库表中;所述目标数据库为所述目标数据库标识对应的数据库;所述目标数据库表为所述目标数据库表标识对应的数据库表。
本发明的实施例提供的技术方案可以包括以下有益效果:在现有技术中,目标活动账户的多个活动信息仅仅存储在一个服务器中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,服务器单位时间段内会接收到大量的获取请求,该服务器单位时间段内接收到的获取请求的数量很轻易就大于该服务器单位时间段内所能处理的获取请求的数量,这样服务器在单位时间段内只能处理接收的获取请求中的一部分获取请求,其他获取请求只能在之后再处理,这就降低了该服务器对其他获取请求的响应速度,响应效率较低。
然而,在本发明图中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,由于事先已经将目标活动账户的多个活动信息分别存储在位于不同位置的多个服务器中,因此多个服务器可以将海量用户发送的获取请求进行分摊;这样,可以降低每个服务器单位时间段内接收的获取请求的数量,进而使得每个服务器单位时间段内接收到的获取请求的数量可以小于该服务器单位时间段内所能处理的获取请求的数量,如此每个服务器在单位时间段内就可以分别将各自接收的所有的处理请求均处理完毕,如此整体上提高了对海量用户发送的获取请求的响应速度,提高了响应效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种信息处理方法的流程图,该方法应用于服务器中,该服务器为服务器组中的一个服务器,服务器组中的每个服务器分别位于不同的位置,且分别存储有目标活动账户的活动信息;如图1所示,该方法包括以下步骤:
在步骤S101中,判断是否接收到终端发送的、用于获取目标活动账户的活动信息的获取请求;
该获取请求携带终端的位置信息、目标活动账户的目标活动标识以及所需获取的活动信息的目标个数;
在步骤S102中,当接收到该获取请求时,判断本地存储的该目标活动标识对应的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数;
在步骤S103中,当大于或等于该获取请求所需获取的活动信息的目标个数时,接收该获取请求的服务器从本地获取目标个数个活动信息;并将获取的目标个数个活动信息发送给终端;
在步骤S104中,当小于该获取请求所需获取的活动信息的目标个数时,根据终端的位置信息,在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器;将该获取请求发送给选择出的服务器;
在步骤S105中,选择出的服务器接收该获取请求,执行步骤S102中的判断本地存储的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数的步骤。
当选择出的服务器接收到该获取请求时,该选择出的服务器即刻成为接收该获取请求的服务器。
在现有技术中,目标活动账户的多个活动信息仅仅存储在一个服务器中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,服务器单位时间段内会接收到大量的获取请求,该服务器单位时间段内接收到的获取请求的数量很轻易就大于该服务器单位时间段内所能处理的获取请求的数量,这样服务器在单位时间段内只能处理接收的获取请求中的一部分获取请求,其他获取请求只能在之后再处理,这就降低了该服务器对其他获取请求的响应速度,响应效率较低。
然而,在本发明图1所示的实施例中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,由于事先已经将目标活动账户的多个活动信息分别存储在位于不同位置的多个服务器中,因此多个服务器可以将海量用户发送的获取请求进行分摊;这样,可以降低每个服务器单位时间段内接收的获取请求的数量,进而使得每个服务器单位时间段内接收到的获取请求的数量可以小于该服务器单位时间段内所能处理的获取请求的数量,如此每个服务器在单位时间段内就可以分别将各自接收的所有的处理请求均处理完毕,如此整体上提高了对海量用户发送的获取请求的响应速度,提高了响应效率。
例如,在现有技术中,服务器每秒能处理200个获取请求,当分布于各个位置的1万个用户均需要获取目标活动账户的活动信息时,每个用户分别发送1个获取请求给服务器,服务器单位时间段内接收到了这1万个获取请求,需要50秒才能完全处理完这些处理请求,整体上的响应时间较长,进而响应效率较低。
然而,在本发明图1所示的实施例中,位于不同位置的50个服务器中均存储有目标活动账户的活动信息,且每个服务器每秒能处理200个获取请求,当分布于各个位置的1万个用户均需要获取目标活动账户的活动信息时,这50个服务器会将这1万个用户一共发送的1万个获取请求进行分摊,例如,每个服务器接收200个获取请求,每个服务器只需1秒就可以处理完各自接收的处理请求,整体上响应时间较短,进而响应效率较高。
图2根据一示例性实施例示出的一种信息处理方法的流程图,如图2所示,该方法包括以下步骤:
在步骤S201中,创建目标活动对应的目标活动账户;
其中,目标活动账户包括多个活动信息及目标活动账户的目标活动标识;目标活动标识可以为目标活动的名称和/或编号等。
目标活动可以抢红包的活动、抢购某一商品的活动或抢积分的活动等。
例如,当目标活动为抢红包的活动时,每个活动信息可以为一个包括一定数额的红包;例如一个5元的红包,或一个10元的红包等。当目标活动为抢购某一商品的活动时,每个活动信息可以为商品限购数量;例如1台,或2台等。
在步骤S202中,获取用于存储多个活动信息的多个目标服务器,以及获取每个目标服务器的位置信息;
其中,技术人员事先在不同位置均部署有服务器,这些服务器相互之间可以进行数据通信,且这些服务器均包括数据库和数据库表,用于存储数据,例如可以存储活动信息等;这些服务器均统一对应一个客户端,当用户需要登录客户端对应的后台服务器时,客户端可以选择距离用户最近的服务器进行登录。
例如,技术人员事先在北京、上海、广州、西宁、银川、昆明和哈尔滨中的每个城市中均部署一个服务器,一共7个服务器,这7个服务器统一对应一个客户端“天猫商城”,用户可以在用户的手机上安装客户端“天猫商城”,当用户位于北京时,如果用户需要登录客户端“天猫商城”的后台服务器,客户端“天猫商城”会选择与用户的手机之间距离最近的服务器进行登录,即,选择位于北京的服务器进行登录。
具体地,本步骤可以通过如下流程实现,包括:
11)、获取本地存储的服务器标识、数据库标识与未存储信息的数据库表标识三者之间的第二对应关系;
其中,部署的服务器相互之间可以进行数据通信,因此,对于部署的任一服务器,该服务器不仅知道该服务器本地的配置情况,还知道部署的其他每个服务器的配置情况,即,知道每个服务器中的数据库中的数据库表中是否存储有数据。该服务器可以根据该服务器本地的配置情况以及其他每个服务器的配置情况,在该服务器本地建立服务器标识、数据库标识与未存储信息的数据库表标识三者之间的第二对应关系;第二对应关系中的每条记录中的未存储信息的数据库表标识对应的数据库表中均未存储数据;
其中,服务器标识为服务器的名称和/或编号等;数据库标识为数据库的名称和/或编号等;数据库表标识为数据库表的名称和/或编号等。
然而,当在第二对应关系中的某一条记录中的、未存储信息的数据库表标识对应的数据库中存储一条数据后,则在第二对应关系中删除该记录;
当从某一数据库表中删除数据并使得该数据库表中为空时,获取该数据库表的数据库表标识,获取该数据库表所属的数据库的数据库标识,以及获取该数据库所属的服务器的服务器标识;将该服务器标识、该数据库标识和该数据库表标识存储在第二对应关系中。
12)、获取第二对应关系中包括的所有的服务器标识;
其中,获取第二对应关系中的每条记录,分别获取每条记录中的服务器标识;以实现获取第二对应关系中包括的所有的服务器标识。
13)、在获取的所有的服务器标识中,对相同的服务器标识进行去除操作,只保留相同的服务器标识中的一个服务器标识;
其中,在获取的所有的服务器标识中,可能存在多个服务器标识为相同的服务器标识,因此需要对相同的服务器标识进行去除操作,只保留相同的服务器标识中的一个服务器标识。在保留的服务器标识中,任意两个服务器标识均不相同。
14)、将保留的每个服务器标识分别对应的服务器均作为目标服务器。
在步骤S203中,根据目标活动账户的活动信息的个数以及目标服务器的个数,为每个目标服务器分配活动信息;
其中,可以根据活动信息的个数以及目标服务器的个数,将活动信息平均分配给每个目标服务器,这样任意两个目标服务器分配的活动信息的个数相同或者只有微小差距,不会有很大差距。
例如,假设目标服务器的个数为10,活动信息的个数为1000,则为每个目标服务器分配100个活动信息,以实现将活动信息平均分配给每个目标服务器,即,任意两个目标服务器分配的目标信息的个数或者相同。
在另一例子中,假设目标服务器的个数为10,活动信息的个数为998,则从10个目标服务器中选择出两个目标服务器,向这两个目标服务器中每个目标服务器分别分配99个目标信息,向其他8个目标服务器中的每个目标服务器分别分配100个目标信息,这样,任意两个目标服务器分配的目标信息的个数或者相同,或者相差1。
其中,也可以根据历史经验,分析不用地域的用户的活跃程度,对处于不同位置的服务器分配不同个数的活动信息;其中,对在用户的活跃程度较高的地域部署的服务器分配较多个数的活动信息,对在用户的活跃程度较低的地域部署的服务器分配较少个数的活动信息。
例如,假设目标服务器为7个,分别位于北京、上海、广州、西宁、银川、昆明和哈尔滨;其中,位于北京、上海和广州的用户的活跃程度较高,位于西宁、银川、昆明和哈尔滨的用户的活跃程度较低,则可以对分别位于北京、上海和广州的服务器分配较多个数的活动信息,对分别位于西宁、银川、昆明、海尔滨的服务器分配较少个数的活动信息,如此实现合理分配活动信息。
在步骤S204中,对于任一目标服务器,在该目标服务器的目标数据库的目标数据库表中存储为该目标服务器分配的活动信息;对于其他每一目标服务器,均执行上述操作;
具体地,对于任一目标服务器,从第二对应关系中获取一个包括该目标服务器的目标服务器标识的目标记录;将该目标记录中的数据库标识作为目标数据库标识,以及将该目标记录中的数据库表标识作为目标数据库表标识;将为该目标服务器分配的活动信息存储在该目标服务器中的目标数据库中的目标数据库表中;其中,目标数据库为目标数据库标识对应的数据库;目标数据库表为目标数据库表标识对应的数据库表。
进一步地,从第二对应关系中删除目标记录。以及将该目标服务器的目标服务器标识、目标数据库的目标数据库标识、目标数据库表的目标数据库表标识、目标活动账户的目标活动标识、目标服务器的位置信息存储在本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系中。
其中,对于其他每一目标服务器,均执行上述操作。
进一步地,当存储完毕后,参见图3,将所有目标服务器组成服务器组。服务器组中的每个服务器均可以连接至互联网,如此,服务器组中的目标服务器可以相互之间进行通信。在图3中,A1~An分别表示目标服务器。
这样,通过步骤S201至步骤S204的流程完成了将目标活动账户的多个活动信息分别存储在处于不同位置的多个目标服务器,同时目标活动即刻启动,之后用户就可以获取目标活动账户的活动信息,当用户需要获取目标活动账户的活动信息时,目标服务器就可以通过如下步骤S205至步骤S209的流程为用户分发用户所需获取的活动信息。
在步骤S205中,服务器组中的每个服务器均判断各自是否接收到终端发送的、用于获取目标活动账户的活动信息的获取请求;
目标活动启动之后,已部署的每个目标服务器均执行步骤S205的操作,当某一目标服务器接收到该获取请求时,通过步骤S206至步骤S209的流程获取该获取请求所需获取的活动信息,并将获取的活动信息发送给终端。
其中,该获取请求携带终端的位置信息、目标活动账户的目标活动标识,以及所需获取的活动信息的目标个数;服务器组中的每个服务器分别位于不同的位置,且分别存储有目标活动账户的活动信息。
终端可以为任一用户使用的手机、平板电脑、笔记本电脑等。
其中,用户可以在终端上查看目标活动的活动页面,然后可以通过点击或触控等方式向服务器发送用于获取目标活动账户的活动信息的该获取请求;服务器接收该获取请求,通过S206至S209的流程进行处理。
例如,目标活动为发放红包,以及1个活动信息为1个红包,终端上显示的目标活动页面至少包括红包获取按钮以及红包获取个数选择框,用户在红包获取个数选择框中选择需要获取的红包的目标个数,然后点击获取按钮,终端接收用户点击获取按钮的点击操作后,获取用户在红包获取个数选择框中选择需要获取的红包的目标个数,根据该目标个数、终端的位置信息以及目标活动账户的目标活动标识生成获取请求并发送给服务器;
终端获取终端的位置信息的方式可以通过现有技术中的任意一种方式,本发明对此不加以限定。
当服务器组中的一个服务器接收到该获取请求时,在步骤S206中,接收该获取请求的服务器判断本地存储的目标活动标识对应的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数;
具体地,在包括与终端的位置信息之间距离最短的、服务器的位置信息的记录中,获取数据库标识和数据库表标识;从获取的服务器中确定出该获取的数据库标识对应的数据库中的数据库表;该数据库表为该获取的数据库表标识对应的数据库表;获取该获取的数据库表中存储的活动信息的个数,判断该获取的数据库表中存储的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的个数。
当大于或等于该获取请求所需获取的活动信息的目标个数时,在步骤S207中,接收该获取请求的服务器从本地获取目标个数个活动信息;并将获取的目标个数个活动信息发送给终端;
在步骤S207中的执行“从本地获取目标个数个活动信息;并将获取的目标个数个活动信息发送给终端”的步骤的执行主体,与步骤S206中的执行“判断本地存储的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数”的步骤的执行主体相同。
其中,从该获取的数据库表中获取目标个数个活动信息,并将目标个数个活动信息发送给终端。如果此时该获取的数据库表中剩余0个活动信息,即此时该数据库表中为空;则将获取的该数据库表的数据库表标识、该数据库表所属的数据库的数据库标识、该数据库表所属的数据库所属的服务器的服务器标识组成一条记录,并存储在第二对应关系中;以及从第一对应关系中删除包括该获取的数据库表的数据库表标识的记录。
例如,当1个活动信息为1个红包时,如果该获取请求所需获取的红包个数为5个,接收该获取请求的服务器中存储的红包的个数为10个时,此时,接收该获取请求的服务器中存储的红包的个数10大于该获取请求所需获取的红包的个数5,则确定接收该获取请求的服务器中存储的红包的个数可以满足该获取请求所需获取的红包的目标个数,可以从接收该获取请求的服务器存储的10个红包中选择5个红包,并发送给终端。此时,接收该获取请求的服务器此时存储的红包的个数只剩下5个。
当小于该获取请求所需获取的活动信息的目标个数时,在步骤S208中,接收该获取请求的服务器根据终端的位置信息,在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器;将该获取请求发送给选择出的服务器;
以使选择出的服务器根据该获取请求执行步骤S206中的“判断本地存储的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数”的步骤。
在步骤S208中的执行“在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器;将该获取请求发送给选择出的服务器”的步骤的执行主体,与步骤S206中的执行“判断本地存储的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数”的步骤的执行主体相同。
其中,服务器组中包括多个服务器,这些服务器分别位于不同位置,且均存储有目标活动账户的活动信息。
在本发明实施例中,当小于该获取请求所需获取的活动信息的目标个数时,确定接收该获取请求的服务器中存储的红包的个数无法满足该获取请求所需获取的红包的目标个数的需求,以及,为了最大程度降低由于通信链路的长度而带来的通信时延,因此需要在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器,然后发送该获取请求给选择的服务器,以使选择的服务器接收该获取请求,然后判断本地存储的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数,当大于或等于该获取请求所需获取的活动信息的目标个数时,选择的服务器执行“从本地获取目标个数个活动信息;并将获取的目标个数个活动信息发送给终端”的步骤,当小于该获取请求所需获取的活动信息的目标个数时,选择的服务器执行“在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器;将该获取请求发送给选择出的服务器”的步骤。
其中,根据终端的位置信息,在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器,可以通过如下流程实现,包括:
21)、获取本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系;
其中,第一对应关系中所有记录中的活动标识包括目标活动账户的目标活动标识和其他活动账户的活动标识。
22)、从第一对应关系中获取包括所有未接收过该获取请求的服务器的服务器标识的记录;
23)、在第一对应关系中获取包括目标活动标识的记录;
对于第一对应关系中的任一条记录;判断该记录中包括的活动标识是否是目标活动标识,如果该记录中包括的活动标识是目标活动标识,则获取该记录,对于其他每条记录,均执行上述操作,以实现在第一对应关系中获取所有包括目标活动标识的记录。
24)、分别在每个包括目标活动标识的记录中获取服务器的位置信息;
对于获取的任一条包括目标活动标识的记录,获取该记录中的服务器的位置信息;对于获取的其他每条包括目标活动标识的记录,均执行上述操作,以实现在每个包括目标活动标识的记录中分别获取服务器的位置信息。
25)、在获取的服务器的位置信息中选择一个与终端的位置信息之间距离最短的服务器的位置信息;
其中,如果在步骤24)中只获取了一个服务器的位置信息,则将该获取的一个服务器的位置信息作为与终端的位置信息之间距离最短的服务器的位置信息。
其中,如果在步骤24)中获取了多个服务器的位置信息,对于获取的任一服务器的位置信息,计算该服务器的位置信息与终端的位置信息之间的距离;对于获取的其他每一服务器的位置信息,均执行上述操作,这样,就可以得到获取的每个服务器的位置信息分别与终端的位置信息之间的距离;根据计算出的距离就可以选择出一个与终端的位置信息之间距离最短的服务器的位置信息。
26)、在第一对应关系中确定出包括与终端的位置信息之间距离最短的、服务器的位置信息的记录;
具体地,在第一对应关系中,获取第1条记录,判断该记录中是否包括在步骤25)中选择出的服务器的位置信息,当包括在步骤25)中选择出的服务器的位置信息时,将该第1条记录作为包括与终端的位置信息之间距离最短的、服务器的位置信息的记录;当不包括与终端的位置信息之间距离最短的、服务器的位置信息的记录,确定该记录不是包括与终端的位置信息之间距离最短的、服务器的位置信息的记录,获取第2条记录,继续执行上述操作,直至获取到的记录包括在步骤25)中选择出的服务器的位置信息时为止,并将获取到的记录作为包括与终端的位置信息之间距离最短的、服务器的位置信息的记录。
27)、将包括与终端的位置信息之间距离最短的、服务器的位置信息的记录中的、服务器标识对应的服务器作为距离终端最近的一个服务器。
例如,当1个活动信息为1个红包时,如果该获取请求所需获取的活动信息的个数为5个时,即所需获取的红包个数为5个,假设最新获取的服务器中存储的红包的个数仅仅为3个时,此时,最新获取的服务器中存储的红包的个数3小于该获取请求所需获取的红包的个数5,因此,确定最新获取的服务器中存储的红包的个数无法满足该获取请求所需获取的红包的目标个数的需求,这样,只能从其他服务器中获取5个红包返回给终端。
在步骤S209中,选择出的服务器接收该获取请求,执行步骤S206中的判断本地存储的目标活动账户的活动信息的个数是否大于或等于该获取请求所需获取的活动信息的目标个数的步骤。
当选择出的服务器接收到该获取请求时,该选择出的服务器即刻成为接收该获取请求的服务器。
进而执行步骤S207中的“从本地获取目标个数个活动信息;并将获取的目标个数个活动信息发送给终端”的步骤,或执行步骤S208中的“在服务器组中的未接收过该获取请求的服务器中选择一个距离终端最近的服务器;将该获取请求发送给选择出的服务器”的步骤。
在现有技术中,目标活动账户的多个活动信息仅仅存储在一个服务器中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,服务器单位时间段内会接收到大量的获取请求,该服务器单位时间段内接收到的获取请求的数量很轻易就大于该服务器单位时间段内所能处理的获取请求的数量,这样服务器在单位时间段内只能处理接收的获取请求中的一部分获取请求,其他获取请求只能在之后再处理,这就降低了该服务器对其他获取请求的响应速度,响应效率较低。
然而,在本发明图2所示的实施例中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,由于事先已经将目标活动账户的多个活动信息分别存储在位于不同位置的多个服务器中,因此多个服务器可以将海量用户发送的获取请求进行分摊;这样,可以降低每个服务器单位时间段内接收的获取请求的数量,进而使得每个服务器单位时间段内接收到的获取请求的数量可以小于该服务器单位时间段内所能处理的获取请求的数量,如此每个服务器在单位时间段内就可以分别将各自接收的所有的处理请求均处理完毕,如此整体上提高了对海量用户发送的获取请求的响应速度,提高了响应效率。
例如,在现有技术中,服务器每秒能处理200个获取请求,当分布于各个位置的1万个用户均需要获取目标活动账户的活动信息时,每个用户分别发送1个获取请求给服务器,服务器单位时间段内接收到了这1万个获取请求,需要50秒才能完全处理完这些处理请求,整体上的响应时间较长,进而响应效率较低。
然而,在本发明图2所示的实施例中,位于不同位置的50个服务器中均存储有目标活动账户的活动信息,且每个服务器每秒能处理200个获取请求,当分布于各个位置的1万个用户均需要获取目标活动账户的活动信息时,这50个服务器会将这1万个用户一共发送的1万个获取请求进行分摊,例如,每个服务器接收200个获取请求,每个服务器只需1秒就可以处理完各自接收的处理请求,整体上响应时间较短,进而响应效率较高。
图4是根据一示例性实施例示出的一种信息处理装置的框图。参照图4,该装置包括:
第一判断模块11,用于判断是否接收到终端发送的、用于获取目标活动账户的活动信息的获取请求;所述获取请求携带所述终端的位置信息、所述目标活动账户的目标活动标识以及所需获取的活动信息的目标个数;
第二判断模块12,用于当接收到所述获取请求时,判断本地存储的所述目标活动标识对应的目标活动账户的活动信息的个数是否大于或等于所述获取请求所需获取的活动信息的目标个数;
第一获取模块13,用于当大于或等于所述获取请求所需获取的活动信息的目标个数时,从本地获取目标个数个活动信息;
第一发送模块14,用于将获取的目标个数个活动信息发送给所述终端;
选择模块15,用于当小于所述获取请求所需获取的活动信息的目标个数时,根据所述终端的位置信息,在所述服务器组中的未接收过所述获取请求的服务器中选择一个距离所述终端最近的服务器;
第二发送模块16,用于将所述获取请求发送给选择出的服务器,以使选择出的服务器根据所述获取请求执行所述判断本地存储的所述目标活动账户的活动信息的个数是否大于或等于所述获取请求所需获取的活动信息的目标个数的步骤。
在现有技术中,目标活动账户的多个活动信息仅仅存储在一个服务器中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,服务器单位时间段内会接收到大量的获取请求,该服务器单位时间段内接收到的获取请求的数量很轻易就大于该服务器单位时间段内所能处理的获取请求的数量,这样服务器在单位时间段内只能处理接收的获取请求中的一部分获取请求,其他获取请求只能在之后再处理,这就降低了该服务器对其他获取请求的响应速度,响应效率较低。
然而,在本发明图4所示的实施例中,当海量的用户同时向该服务器发送用于获取目标活动账户的活动信息的获取请求时,由于事先已经将目标活动账户的多个活动信息分别存储在位于不同位置的多个服务器中,因此多个服务器可以将海量用户发送的获取请求进行分摊;这样,可以降低每个服务器单位时间段内接收的获取请求的数量,进而使得每个服务器单位时间段内接收到的获取请求的数量可以小于该服务器单位时间段内所能处理的获取请求的数量,如此每个服务器在单位时间段内就可以分别将各自接收的所有的处理请求均处理完毕,如此整体上提高了对海量用户发送的获取请求的响应速度,提高了响应效率。
其中,所述选择模块15包括:
第一获取单元,用于获取本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系;
第二获取单元,用于从第一对应关系中获取包括所有未接收过所述获取请求的服务器的服务器标识的记录;
第三获取单元,用于在包括所有未接收过所述获取请求的服务器的服务器标识的记录中获取包括所述目标活动标识的记录;
第四获取单元,用于分别在每个包括所述目标活动标识的记录中获取服务器的位置信息;
选择单元,用于在获取的服务器的位置信息中选择一个与所述终端的位置信息之间距离最短的服务器的位置信息;
第一确定单元,用于在所述第一对应关系中确定出包括与所述终端的位置信息之间距离最短的服务器的位置信息的记录;
第二确定单元,用于将包括与所述终端的位置信息之间距离最短的服务器的位置信息的记录中的服务器标识对应的服务器作为距离所述终端最近的一个服务器。
进一步地,所述装置还包括:
创建模块,用于创建目标活动账户;所述目标活动账户包括多个活动信息及所述目标活动账户的目标活动标识;
第二获取模块,用于获取用于存储所述多个活动信息的多个目标服务器,以及获取每个目标服务器的位置信息;
分配模块,用于根据所述目标活动账户的活动信息的个数以及目标服务器的个数,为每个目标服务器分配活动信息;
第一存储模块,用于对于每个目标服务器,在所述目标服务器的目标数据库的目标数据库表中存储为所述目标服务器分配的活动信息;
第二存储模块,用于将所述目标服务器的目标服务器标识、所述目标数据库的目标数据库标识、所述目标数据库表的目标数据库表标识、所述目标活动账户的目标活动标识、所述目标服务器的位置信息存储在本地存储的服务器标识、数据库标识、数据库表标识、活动标识与服务器的位置信息五者之间的第一对应关系中。
其中,所述第二获取模块包括:
第五获取单元,用于获取本地存储的服务器标识、数据库标识与未存储信息的数据库表标识三者之间的第二对应关系;
第六获取单元,用于获取所述第二应关系中包括的所有的服务器标识;
去除单元,用于在获取的所有的服务器标识中,对相同的服务器标识进行去除操作,只保留相同的服务器标识中的一个服务器标识;
第三确定单元,用于将保留的服务器标识对应的服务器均作为目标服务器。
其中,所述第一存储模块包括:
第七获取单元,从所述第二对应关系中获取一个包括所述目标服务器的目标记录;
第四确定单元,用于将所述目标记录中的数据库标识作为目标数据库标识,以及将所述目标记录中的数据库表标识作为目标数据库表标识;
存储单元,用于将为所述目标服务器分配的活动信息存储在所述目标服务器中的目标数据库中的目标数据库表中;所述目标数据库为所述目标数据库标识对应的数据库;所述目标数据库表为所述目标数据库表标识对应的数据库表。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。