业务处理系统及方法
技术领域
本发明涉及计算机技术领域,特别涉及一种业务处理系统及方法。
背景技术
随着计算机技术和互联网技术的不断发展,出现了各式各样的网络业务。一些人气较高的网络业务的参与用户数量都以海量来形容,该数量可达到数十百万甚至更多。例如,一些人气较高的网络游戏、秒杀购物以及抢红包等网络业务,同时参与的用户数量均以海量来形容。
在相关技术中,对于一项网络业务来讲,仅部署一个业务处理进程及一个数据库系统。其中,该业务处理进程用于处理参与该网络业务的各个用户发起的业务请求,该数据库系统用于存储与该网络业务相关的数据。当该项网络业务的参与用户数量较少时,上述业务系统能够较好的满足业务需求,为各个用户正常提供服务。
然而,当海量的用户参与到该项网络业务时,大量的并发业务请求将会给业务处理进程和数据库系统带来非常大的压力,容易导致整个业务系统瘫痪,影响业务正常运营。
发明内容
为了解决上述技术存在的问题,本发明实施例提供了一种业务处理系统及方法。所述技术方案如下:
第一方面,提供了一种业务处理系统,所述系统包括:包括多个业务处理进程的业务处理集群、包括多个数据库系统的数据库集群以及请求分发进程;
所述请求分发进程,用于接收目标用户发起的对应于目标业务的业务请求,所述业务请求中携带有所述目标用户的用户标识;根据所述用户标识,从所述多个业务处理进程中选取一个目标业务处理进程;将所述业务请求分发给所述目标业务处理进程;
所述目标业务处理进程,用于根据所述用户标识,从所述多个数据库系统中确定用于存储所述目标用户对应的个人业务数据的第一目标数据库系统;访问所述第一目标数据库系统,执行针对所述目标用户对应的个人业务数据的读写操作以响应于所述业务请求。
可选地,所述目标业务处理进程,具体用于:
当所述业务请求属于数据读取请求时,访问所述第一目标数据库系统,读取所述目标用户对应的个人业务数据,并向所述目标用户提供所述个人业务数据;
或者,
当所述业务请求属于数据存储请求时,访问所述第一目标数据库系统,对所述目标用户对应的个人业务数据进行编辑;
或者,
当所述业务请求属于业务参与请求时,访问所述第一目标数据库系统,在所述第一目标数据库系统中创建所述目标用户对应的个人业务数据。
可选地,所述系统还包括:执行进程;
所述执行进程,用于每隔预定时间间隔对所述目标业务对应的整体业务数据以及参与所述目标业务的各个用户分别对应的个人业务数据进行更新。
可选地,所述目标业务为协作游戏任务;
所述整体业务数据包括:任务参与总人数、任务完成总人数、整体任务完成等级、整体任务执行时间、整体任务完成时间以及整体用户排名中的至少一项;
所述个人业务数据包括:个人任务完成等级、个人任务执行时间、个人任务完成时间以及个人排名中的至少一项。
可选地,所述执行进程,具体用于:
获取所述协作游戏任务对应的业务标识;
根据所述业务标识,从所述多个数据库系统中确定用于存储所述协作游戏任务对应的整体业务数据的第二目标数据库系统;
访问所述第二目标数据库系统,读取所述整体业务数据;
根据所述业务标识,访问所述多个数据库系统,读取参与所述协作游戏任务的各个用户分别对应的个人业务数据;
根据所述整体业务数据以及各个所述个人业务数据,对参与所述协作游戏任务的各个用户进行排序;
依据排序结果,对所述整体业务数据和各个所述个人业务数据进行更新;
根据所述业务标识将更新后的整体业务数据存储至所述第二目标数据库系统中,并分别根据各个用户的用户标识将更新后的个人业务数据存储至对应的数据库系统中。
可选地,所述请求分发进程,具体用于:
计算所述用户标识对应的映射值;
根据所述多个业务处理进程中的每个业务处理进程分别对应的映射值区间,从所述多个业务处理进程中选取所述目标业务处理进程;其中,所述目标业务处理进程对应的映射值区间包含所述映射值。
可选地,所述目标业务处理进程,具体用于:
计算所述用户标识对应的映射值;
根据所述多个数据库系统中的每个数据库系统分别对应的映射值区间,从所述多个数据库系统中确定所述第一目标数据库系统;其中,所述第一目标数据库系统对应的映射值区间包含所述映射值。
第二方面,提供了一种业务处理方法,所述方法应用于业务处理系统中,所述业务处理系统包括:包括多个业务处理进程的业务处理集群、包括多个数据库系统的数据库集群以及请求分发进程;
所述方法包括:
所述请求分发进程接收目标用户发起的对应于目标业务的业务请求,所述业务请求中携带有所述目标用户的用户标识;
所述请求分发进程根据所述用户标识,从所述多个业务处理进程中选取一个目标业务处理进程;
所述请求分发进程将所述业务请求分发给所述目标业务处理进程;
所述目标业务处理进程根据所述用户标识,从所述多个数据库系统中确定用于存储所述目标用户对应的个人业务数据的第一目标数据库系统;
所述目标业务处理进程访问所述第一目标数据库系统,执行针对所述目标用户对应的个人业务数据的读写操作以响应于所述业务请求。
可选地,所述目标业务处理进程访问所述第一目标数据库系统,执行针对所述目标用户对应的个人业务数据的读写操作以响应于所述业务请求,包括:
当所述业务请求属于数据读取请求时,所述目标业务处理进程访问所述第一目标数据库系统,读取所述目标用户对应的个人业务数据,并向所述目标用户提供所述个人业务数据;
或者,
当所述业务请求属于数据存储请求时,所述目标业务处理进程访问所述第一目标数据库系统,对所述目标用户对应的个人业务数据进行编辑;
或者,
当所述业务请求属于业务参与请求时,所述目标业务处理进程访问所述第一目标数据库系统,在所述第一目标数据库系统中创建所述目标用户对应的个人业务数据。
可选地,所述业务处理系统还包括:执行进程;
所述方法还包括:
所述执行进程每隔预定时间间隔对所述目标业务对应的整体业务数据以及参与所述目标业务的各个用户分别对应的个人业务数据进行更新。
可选地,所述目标业务为协作游戏任务;
所述整体业务数据包括:任务参与总人数、任务完成总人数、整体任务完成等级、整体任务执行时间、整体任务完成时间以及整体用户排名中的至少一项;
所述个人业务数据包括:个人任务完成等级、个人任务执行时间、个人任务完成时间以及个人排名中的至少一项。
可选地,所述执行进程用于每隔预定时间间隔对所述目标业务对应的整体业务数据以及参与所述目标业务的各个用户分别对应的个人业务数据进行更新,包括:
所述执行进程获取所述协作游戏任务对应的业务标识;
所述执行进程根据所述业务标识,从所述多个数据库系统中确定用于存储所述协作游戏任务对应的整体业务数据的第二目标数据库系统;
所述执行进程访问所述第二目标数据库系统,读取所述整体业务数据;
所述执行进程根据所述业务标识,访问所述多个数据库系统,读取参与所述协作游戏任务的各个用户分别对应的个人业务数据;
所述执行进程根据所述整体业务数据以及各个所述个人业务数据,对参与所述协作游戏任务的各个用户进行排序;
所述执行进程依据排序结果,对所述整体业务数据和各个所述个人业务数据进行更新;
所述执行进程根据所述业务标识将更新后的整体业务数据存储至所述第二目标数据库系统中,并分别根据各个用户的用户标识将更新后的个人业务数据存储至对应的数据库系统中。
可选地,所述请求分发进程根据所述用户标识,从所述多个业务处理进程中选取一个目标业务处理进程,包括:
所述请求分发进程计算所述用户标识对应的映射值;
所述请求分发进程根据所述多个业务处理进程中的每个业务处理进程分别对应的映射值区间,从所述多个业务处理进程中选取所述目标业务处理进程;其中,所述目标业务处理进程对应的映射值区间包含所述映射值。
可选地,所述目标业务处理进程根据所述用户标识,从所述多个数据库系统中确定用于存储所述目标用户对应的个人业务数据的第一目标数据库系统,包括:
所述目标业务处理进程计算所述用户标识对应的映射值;
所述目标业务处理进程根据所述多个数据库系统中的每个数据库系统分别对应的映射值区间,从所述多个数据库系统中确定所述第一目标数据库系统;其中,所述第一目标数据库系统对应的映射值区间包含所述映射值。
本发明实施例提供的技术方案带来的有益效果包括:
通过部署多个业务处理进程以及多个数据库系统,使得来自于不同用户发起的多个业务请求被分发至不同的业务处理进程进行处理,并将不同用户对应的个人业务数据分布存储在不同的数据库系统中;解决了相关技术提供的业务系统在收到大量的并发业务请求时,给业务处理进程和数据库系统带来非常大的压力,容易导致整个业务系统瘫痪,影响业务正常运营的问题;采用多进程多数据库的架构以缓解单个业务处理进程和单个数据库系统的压力,达到了提高整个业务系统在处理海量业务请求时的稳定性和效率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例所涉及的一种实施环境的示意图;
图2是本发明一个实施例提供的业务处理系统的示意图;
图3是本发明另一实施例提供的业务处理系统的示意图;
图4是本发明一个实施例提供的业务处理方法的流程图;
图5A是本发明另一实施例提供的业务处理方法的流程图;
图5B是本发明另一实施例涉及的执行节点的处理流程的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明实施例所涉及的一种实施环境的示意图。该实施环境可以包括:服务器120和多台用户设备140。服务器120可通过有线网络或者无线网络与各个用户设备140相连。
服务器120可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。服务器120的数量和分布架构可结合实际的业务需求进行部署。服务器120用于向用户提供网络业务。例如,该网络业务可以是网络游戏、秒杀购物、抢红包等参与用户数量较多的网络业务。
用户设备120可以是诸如手机、平板电脑、计算机之类的电子设备。用户设备120中可运行有客户端,用户可通过该客户端登录至服务器120以参与上述网络业务。
本发明实施例提供的业务处理系统可部署于上述服务器120中。在一种可能的实现方式中,服务器120可分为业务处理服务器和数据库服务器。其中,业务处理服务器用于接收并处理参与上述网络业务的各用户发起的业务请求;数据库服务器用于存储与上述网络业务相关的数据。业务处理服务器中部署有业务处理集群,该业务处理集群包含多个业务处理进程。业务处理服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,每台服务器中可运行一个或多个业务处理进程。数据库服务器中部署有数据库集群,该数据库集群包含多个数据库系统,如包含多个MySQL关系型数据库系统。数据库服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,每台服务器中可维护一个或多个数据库系统。
请参考图2,其示出了本发明一个实施例提供的业务处理系统的示意图。该业务处理系统包括:包括多个业务处理进程210的业务处理集群220、包括多个数据库系统230的数据库集群240以及请求分发进程250。其中:
请求分发进程250,用于接收目标用户发起的对应于目标业务的业务请求,该业务请求中携带有目标用户的用户标识;根据用户标识,从多个业务处理进程210中选取一个目标业务处理进程211;将业务请求分发给目标业务处理进程211。
目标业务处理进程211,用于根据用户标识,从多个数据库系统230中确定用于存储目标用户对应的个人业务数据的第一目标数据库系统231;访问第一目标数据库系统231,执行针对目标用户对应的个人业务数据的读写操作以响应于上述业务请求。
综上所述,本实施例提供的业务处理系统,通过部署多个业务处理进程以及多个数据库系统,使得来自于不同用户发起的多个业务请求被分发至不同的业务处理进程进行处理,并将不同用户对应的个人业务数据分布存储在不同的数据库系统中;解决了相关技术提供的业务系统在收到大量的并发业务请求时,给业务处理进程和数据库系统带来非常大的压力,容易导致整个业务系统瘫痪,影响业务正常运营的问题;采用多进程多数据库的架构以缓解单个业务处理进程和单个数据库系统的压力,达到了提高整个业务系统在处理海量业务请求时的稳定性和效率的效果。
请参考图3,其示出了本发明另一实施例提供的业务处理系统的示意图。该业务处理系统包括:包括多个业务处理进程310的业务处理集群320、包括多个数据库系统330的数据库集群340以及请求分发进程350。其中:
请求分发进程350,用于接收目标用户发起的对应于目标业务的业务请求,该业务请求中携带有目标用户的用户标识;根据用户标识,从多个业务处理进程310中选取一个目标业务处理进程311;将业务请求分发给目标业务处理进程311。
在本实施例中,目标业务可以是诸如网络游戏、秒杀购物、抢红包等参与用户数量较多的网络业务。目标用户是指参与该目标业务的各个用户中的任意一个用户。目标用户可通过客户端向业务处理系统发起业务请求,该业务请求中携带有目标用户的用户标识。例如,目标用户的用户标识可以是用户用于登录上述客户端的账号。可选地,业务请求中还携带有目标业务的业务标识。
另外,业务请求包括但不限于如下几种可能的类型:1)数据读取请求,如用于请求获取个人业务数据;2)数据存储请求,如用于请求修改个人业务数据;3)业务参与请求,如用于请求参与目标业务。下文将结合具体的业务场景对不同类型的业务请求进行介绍和说明。
业务处理系统中的请求分发进程350用于接收参与目标业务的各个用户发起的业务请求,并将各个业务请求分发给不同的业务处理进程310进行处理。当请求分发进程350接收到目标用户发起的业务请求后,请求分发进程350从中读取目标用户的用户标识,根据该用户标识从多个业务处理进程310中选取一个目标业务处理进程311,该被选取的目标业务处理进程311即为用于处理目标用户发起的上述业务请求的业务处理进程310。
在一种可能的实现方式中,请求分发进程350,具体用于:计算用户标识对应的映射值;根据多个业务处理进程310中的每个业务处理进程310分别对应的映射值区间,从多个业务处理进程310中选取目标业务处理进程311;其中,目标业务处理进程311对应的映射值区间包含上述映射值。
可选地,请求分发进程350可采用哈希算法计算目标用户的用户标识对应的映射值。例如,假设该映射值为1。预先为不用的业务处理进程310分配不同的映射值区间。例如,假设总的映射值区间为[0,9],业务处理系统中共包括5个业务处理进程310,则可为第一个业务处理进程分配对应的映射值区间[0,1]、为第二个业务处理进程分配对应的映射值区间[2,3]、为第三个业务处理进程分配对应的映射值区间[4,5]、为第四个业务处理进程分配对应的映射值区间[6,7]、以及为第五个业务处理进程分配对应的映射值区间[8,9]。当请求分发进程350计算出目标用户的用户标识对应的映射值为1时,则将该目标用户发起的上述业务请求分发给第一个业务处理进程。再例如,当请求分发进程350计算出另一用户的用户标识对应的映射值为6时,则将该另一用户发起的业务请求分发给第四个业务处理进程。需要说明的一点是:上述针对业务请求的分发过程的说明仅是示例性和解释性的,并不用于限定本发明。
相比于相关技术中仅部署一个业务处理进程,在本实施例中,通过部署多个业务处理进程310,使得海量的业务请求可被分发至不同的业务处理进程310进行处理,无需集中依赖于一个业务处理进程进行处理,有效缓解单个业务处理进程的压力,确保业务处理效率和请求响应速度,且有助于提高整个业务系统的稳定性。
目标业务处理进程311,用于根据用户标识,从多个数据库系统330中确定用于存储目标用户对应的个人业务数据的第一目标数据库系统331;访问第一目标数据库系统331,执行针对目标用户对应的个人业务数据的读写操作以响应于上述业务请求。
目标业务处理进程311获取到请求分发进程350分发的业务请求后,对该业务请求进行处理。
首先,目标业务处理进程311根据目标用户的用户标识,从多个数据库系统330中确定出用于存储该目标用户对应的个人业务数据的第一目标数据库系统331。在一种可能的实现方式中,目标业务处理进程311,具体用于:计算用户标识对应的映射值;根据多个数据库系统330中的每个数据库系统330分别对应的映射值区间,从多个数据库系统330中确定第一目标数据库系统331;其中,第一目标数据库系统331对应的映射值区间包含上述映射值。目标业务处理进程311确定第一目标数据库系统331的过程与上述请求分发进程350确定目标业务处理进程311的过程相类似,具体参见上述针对请求分发进程350确定目标业务处理进程311的过程的介绍和说明,此处不再赘述。可选地,数据库系统330可以是MySQL关系型数据库系统。
相比于相关技术中仅部署一个数据库系统,在本实施例中,通过部署多个数据库系统330,使得海量用户的个人业务数据可被分布存储至不同的数据库系统330中,无需集中存储于一个数据库系统中,有效缓解单个数据库系统的存储压力以及数据读写压力,避免出现数据库系统不可用的状况。
之后,目标业务处理进程311访问第一目标数据库系统331,执行针对目标用户对应的个人业务数据的读写操作以响应于上述业务请求。
可选地,针对业务请求的不同类型,存在如下几种可能的情况:
1、当业务请求属于数据读取请求时,目标业务处理进程311用于访问第一目标数据库系统331,读取目标用户对应的个人业务数据,并向目标用户提供个人业务数据。
以目标业务为网络游戏为例,客户端在目标用户进行游戏的过程中可能会向业务处理系统发起用于请求获取诸如个人属性数据、个人任务完成等级、个人排名等个人业务数据的业务请求,目标业务处理进程311依据该业务请求中携带的请求参数,从第一目标数据库系统331中读取上述业务请求所请求获取的数据,并反馈给客户端。
2、当业务请求属于数据存储请求时,目标业务处理进程311用于访问第一目标数据库系统331,对目标用户对应的个人业务数据进行编辑。
仍然以目标业务为网络游戏为例,客户端在目标用户进行游戏的过程中可能会向业务处理系统发起用于请求修改诸如个人属性数据、个人任务完成等级、个人排名等个人业务数据的业务请求,目标业务处理进程311依据该业务请求中携带的请求参数,对第一目标数据库系统331中存储的相关数据进行修改和编辑。
3、当业务请求属于业务参与请求时,目标业务处理进程311用于访问第一目标数据库系统331,在第一目标数据库系统331中创建目标用户对应的个人业务数据。
仍然以目标业务为网络游戏为例,客户端在目标用户要求加入该游戏时向业务处理系统发起用于请求加入游戏的业务请求,目标业务处理进程311依据该业务请求中携带的请求参数,在第一目标数据库系统331中创建目标用户对应的个人业务数据,如包括个人属性数据、个人任务完成等级、个人排名等数据。
可选地,当业务请求属于业务参与请求时,目标业务处理进程311还用于检测目标用户是否符合参与条件,当目标用户符合参与条件时,在第一目标数据库系统331中创建目标用户对应的个人业务数据。其中,参与条件可包括但不限于目标用户当前暂未参与目标业务、目标业务对应的总参与人数未达到人数上限等条件中的至少一种。
可选地,如图3所示,该业务处理系统还包括:执行进程360。执行进程360,用于每隔预定时间间隔对目标业务对应的整体业务数据以及参与目标业务的各个用户分别对应的个人业务数据进行更新。
在本实施例中,为了避免海量的业务请求导致多个业务处理进程310执行大量同样而又重复的操作,进一步减少对数据库系统330的访问压力,在业务处理系统中部署执行进程360。系统可为执行进程360设定定时器,通过定时器每隔预定时间间隔触发执行进程360启动运行。执行进程360用于统一执行不同业务请求所请求的共性操作,并在数据库系统330中更新相关的共性数据。例如,当目标业务为网络游戏时,海量的业务请求可能都要请求获取参与游戏的所有用户的排名情况,若针对每一个业务请求执行一次排名操作,这无疑会浪费业务处理进程310大量的处理开销,且对数据库系统330的访问压力也会很大。然而,若通过执行进程360每隔预定时间间隔对参与游戏的所有用户进行一次排名,并将最新的排名情况更新至该网络游戏对应的整体业务数据以及各用户分别对应的个人业务数据中,各个业务处理进程310接收到上述业务请求后仅需从数据库系统330中读取最新的排名情况,无需执行排名操作,既可以节省业务处理进程310的处理开销,又可以减轻数据库系统330的访问压力。
在一种可能的实现方式中,目标业务为协作游戏任务。协作游戏任务是指需要多个用户共同参与并协作完成的游戏任务。如一种卡牌游戏,需要多个用户协作提升卡牌的等级,并在卡牌被升级至目标等级时才算完成任务,在升级卡牌的过程中,付出努力最多的一个或多个用户为获胜者,其余用户均为失败者,系统会向获胜者发放相关奖励。
当目标业务为协作游戏任务时,整体业务数据包括但不限于任务参与总人数、任务完成总人数、整体任务完成等级、整体任务执行时间、整体任务完成时间以及整体用户排名中的至少一项。个人业务数据包括但不限于个人任务完成等级、个人任务执行时间、个人任务完成时间以及个人排名中的至少一项。
相应地,当目标业务为协作游戏任务时,执行进程360可具体用于每隔预定时间间隔执行如下操作:
1、获取协作游戏任务对应的业务标识。
2、根据业务标识,从多个数据库系统330中确定用于存储协作游戏任务对应的整体业务数据的第二目标数据库系统332。
在一种可能的实现方式中,执行进程360,具体用于:计算业务标识对应的映射值;根据多个数据库系统330中的每个数据库系统330分别对应的映射值区间,从多个数据库系统330中确定用于存储协作游戏任务对应的整体业务数据的第二目标数据库系统332。
3、访问第二目标数据库系统332,读取整体业务数据。
例如,当协作游戏任务为上述例举的卡牌游戏时,整体业务数据可包括任务参与总人数、任务完成总人数、整体任务完成等级以及整体用户排名等。
4、根据业务标识,访问多个数据库系统330,读取参与协作游戏任务的各个用户分别对应的个人业务数据。
在一种可能的实现方式中,执行进程360,具体用于:根据预定对应关系获取与业务标识对应的至少一个用户标识;对于每一个用户标识,计算该用户标识对应的映射值;根据多个数据库系统330中的每个数据库系统330分别对应的映射值区间,从多个数据库系统330中确定用于存储该用户标识对应的用户的个人业务数据的数据库系统330。其中,预定对应关系中记录有协作游戏任务对应的业务标识,以及参与该协作游戏任务的各个用户的用户标识之间的对应关系。
另外,当协作游戏任务为上述例举的卡牌游戏时,个人业务数据可包括个人任务完成等级、个人任务执行时间、个人任务完成时间以及个人排名等。
5、根据整体业务数据以及各个个人业务数据,对参与协作游戏任务的各个用户进行排序。
6、依据排序结果,对整体业务数据和各个个人业务数据进行更新。
执行进程360可结合当前的整体业务数据以及各个个人业务数据,对各个用户进行排名,更新整体用户排名以及各个用户的个人排名。
7、根据业务标识将更新后的整体业务数据存储至第二目标数据库系统332中,并分别根据各个用户的用户标识将更新后的个人业务数据存储至对应的数据库系统330中。
需要补充说明的一点是:执行进程360可以是一个独立的进程,或者执行进程360也可以是多个业务处理进程310中的一个。例如,业务处理系统可将某个业务处理进程310配置为固定的执行进程360,或者也可在不同的时段配置不同的业务处理进程310为执行进程360。业务处理进程310启动后,可判断自身是否被配置为执行进程360;若是,则每隔预定时间间隔执行上述执行进程360的操作流程;否则,等待请求分发进程350的调用,处理业务请求。
综上所述,本实施例提供的业务处理系统,通过部署多个业务处理进程以及多个数据库系统,使得来自于不同用户发起的多个业务请求被分发至不同的业务处理进程进行处理,并将不同用户对应的个人业务数据分布存储在不同的数据库系统中;解决了相关技术提供的业务系统在收到大量的并发业务请求时,给业务处理进程和数据库系统带来非常大的压力,容易导致整个业务系统瘫痪,影响业务正常运营的问题;采用多进程多数据库的架构以缓解单个业务处理进程和单个数据库系统的压力,达到了提高整个业务系统在处理海量业务请求时的稳定性和效率的效果。
另外,还通过部署执行进程,通过执行进程定时执行不同业务请求所请求的共性操作,并在数据库系统中更新相关的共性数据,避免了海量的业务请求导致多个业务处理进程执行大量同样而又重复的操作,既可以节省业务处理进程的处理开销,又可以减轻数据库系统的访问压力。
特别地,当本实施例提供的业务处理系统用于向用户提供协作游戏任务的业务服务时,实现了海量用户进行协作游戏的需求,丰富游戏的可玩性并提高用户体验,且系统在处理性能和效率方面完全能够应对海量用户的高并发请求。
下述为本发明方法实施例,对于本发明方法实施例中未披露的细节,请参照本发明系统实施例。
请参考图4,其示出了本发明一个实施例提供的业务处理方法的流程图。该方法可应用于图2所示的业务处理系统中。该方法可以包括如下几个步骤:
步骤402,请求分发进程接收目标用户发起的对应于目标业务的业务请求,业务请求中携带有目标用户的用户标识。
步骤404,请求分发进程根据用户标识,从多个业务处理进程中选取一个目标业务处理进程。
步骤406,请求分发进程将上述业务请求分发给目标业务处理进程。
步骤408,目标业务处理进程根据用户标识,从多个数据库系统中确定用于存储目标用户对应的个人业务数据的第一目标数据库系统。
步骤410,目标业务处理进程访问第一目标数据库系统,执行针对目标用户对应的个人业务数据的读写操作以响应于上述业务请求。
综上所述,本实施例提供的业务处理方法,通过多个业务处理进程来处理自于不同用户发起的多个业务请求,以及通过多个数据库系统来分布存储不同用户对应的个人业务数据;解决了相关技术提供的业务系统在收到大量的并发业务请求时,给业务处理进程和数据库系统带来非常大的压力,容易导致整个业务系统瘫痪,影响业务正常运营的问题;采用多进程多数据库的架构以缓解单个业务处理进程和单个数据库系统的压力,达到了提高整个业务系统在处理海量业务请求时的稳定性和效率的效果。
请参考图5A,其示出了本发明另一实施例提供的业务处理方法的流程图。该方法可应用于图3所示的业务处理系统中。该方法可以包括如下几个步骤:
步骤501,请求分发进程接收目标用户发起的对应于目标业务的业务请求,业务请求中携带有目标用户的用户标识。
步骤502,请求分发进程计算用户标识对应的映射值。
步骤503,请求分发进程根据多个业务处理进程中的每个业务处理进程分别对应的映射值区间,从多个业务处理进程中选取目标业务处理进程;其中,目标业务处理进程对应的映射值区间包含上述映射值。
步骤504,请求分发进程将上述业务请求分发给目标业务处理进程。
步骤505,目标业务处理进程计算用户标识对应的映射值。
步骤506,目标业务处理进程根据多个数据库系统中的每个数据库系统分别对应的映射值区间,从多个数据库系统中确定第一目标数据库系统;其中,第一目标数据库系统对应的映射值区间包含上述映射值。
步骤507,目标业务处理进程访问第一目标数据库系统,执行针对目标用户对应的个人业务数据的读写操作以响应于上述业务请求。
可选地,本步骤可包含如下几种可能的情况:
1)当业务请求属于数据读取请求时,目标业务处理进程访问第一目标数据库系统,读取目标用户对应的个人业务数据,并向目标用户提供个人业务数据;
2)当业务请求属于数据存储请求时,目标业务处理进程访问第一目标数据库系统,对目标用户对应的个人业务数据进行编辑;
3)当业务请求属于业务参与请求时,目标业务处理进程访问第一目标数据库系统,在第一目标数据库系统中创建目标用户对应的个人业务数据。
可选地,结合参考图3,业务处理系统还包括:执行进程。本实施例提供的业务处理方法还包括:
执行进程每隔预定时间间隔对目标业务对应的整体业务数据以及参与目标业务的各个用户分别对应的个人业务数据进行更新。
在一种可能的实现方式中,目标业务为协作游戏任务。相应地,整体业务数据包括但不限于任务参与总人数、任务完成总人数、整体任务完成等级、整体任务执行时间、整体任务完成时间以及整体用户排名中的至少一项。个人业务数据包括但不限于个人任务完成等级、个人任务执行时间、个人任务完成时间以及个人排名中的至少一项。
可选地,如图5B所示,执行进程可每隔预定时间间隔执行如下步骤51至步骤57:
步骤51,执行进程获取协作游戏任务对应的业务标识;
步骤52,执行进程根据业务标识,从多个数据库系统中确定用于存储协作游戏任务对应的整体业务数据的第二目标数据库系统;
步骤53,执行进程访问第二目标数据库系统,读取整体业务数据;
步骤54,执行进程根据业务标识,访问多个数据库系统,读取参与协作游戏任务的各个用户分别对应的个人业务数据;
步骤55,执行进程根据整体业务数据以及各个个人业务数据,对参与协作游戏任务的各个用户进行排序;
步骤56,执行进程依据排序结果,对整体业务数据和各个个人业务数据进行更新;
步骤57,执行进程根据业务标识将更新后的整体业务数据存储至第二目标数据库系统中,并分别根据各个用户的用户标识将更新后的个人业务数据存储至对应的数据库系统中。
综上所述,本实施例提供的业务处理方法,通过多个业务处理进程来处理自于不同用户发起的多个业务请求,以及通过多个数据库系统来分布存储不同用户对应的个人业务数据;解决了相关技术提供的业务系统在收到大量的并发业务请求时,给业务处理进程和数据库系统带来非常大的压力,容易导致整个业务系统瘫痪,影响业务正常运营的问题;采用多进程多数据库的架构以缓解单个业务处理进程和单个数据库系统的压力,达到了提高整个业务系统在处理海量业务请求时的稳定性和效率的效果。
另外,还通过部署执行进程,通过执行进程定时执行不同业务请求所请求的共性操作,并在数据库系统中更新相关的共性数据,避免了海量的业务请求导致多个业务处理进程执行大量同样而又重复的操作,既可以节省业务处理进程的处理开销,又可以减轻数据库系统的访问压力。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。