具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的业务信息处理过程,具体包括以下步骤:
S101:服务器获取配置信息,其中,该配置信息包括:选定用户列表,和/或分流信息。
在本申请实施例中,用户可通过位于前台的服务界面,提交待处理的业务信息,各用户所提交的业务信息汇集成为业务信息流量。所述的服务器可以是位于后台,用于将该业务信息流量进行分流,并导向相应的处理系统进行处理的分流服务器,在业务信息流量较高的情况下,可以有多个服务器进行分流。
所述的配置信息可以由服务提供方预先配置,并分发至各服务器,各服务器则根据获取的配置信息,对业务信息流量执行分流操作。
S102:当服务器接收到业务信息时,采用预设的与该配置信息对应的发送方式,将该业务信息发送给第一处理系统或者第二处理系统进行处理。
在本申请实施例中,所述的第一处理系统可以是原处理系统,所述的第二处理系统可以是新处理系统。在新处理系统尚未上线时,服务器针对从业务信息流量中接收到的每个业务信息,将该业务信息发送给原处理系统进行处理即可;而在新处理系统上线后,服务器则可将业务信息流量从原处理系统迁移至新处理系统,为了增强风险可控性,服务器可逐步地迁移业务信息流量,而不是一次性地迁移完全部的业务信息流量。
因此,在新处理系统上线后,当服务器接收到业务信息时,可采用预设的与该配置信息对应的发送方式,将该业务信息发送给原处理系统或者新处理系统进行处理,根据上述步骤S101,该配置信息包括:选定用户列表,和/或分流信息。其中,用户提交的每个业务信息都包含有该用户的用户标识,一般的,该用户标识用字符串表示,由服务提供方根据该用户的注册信息分配或生成得到,所述的选定用户列表中可包含一个或多个用户标识,所述的分流信息可包含分流策略相关的参数。该配置信息所包含的选定用户列表和分流信息,分别对应着一类指定条件,使得服务器可根据选定用户列表和/或分流信息,判断接收到的业务信息是否符合该指定条件,若是,则将该业务信息发送给新处理系统处理,否则,将该业务信息发送给原处理系统处理。也即,服务器可从当前的业务流量中,确定出特定数量的业务信息发送给新处理系统进行处理,并将其余的业务信息仍发送给原处理系统进行处理。
通过上述的方法,由于服务器可以根据该配置信息,仅将符合该配置信息所指定条件的业务信息发送给新处理系统处理,而不是直接将全部业务信息都发送给新处理系统处理,且又由于符合该指定条件的业务信息的数量比例是可控的,因此,服务器可根据新处理系统实时的稳定性状态,逐步调整发送给新处理系统处理的业务信息的数量比例,直至业务信息流量全部迁移至新处理系统,增强了风险可控性。
在本申请实施例中,当该配置信息为选定用户列表时,对于上述步骤S102,采用预设的与该配置信息对应的发送方式,将该业务信息发送给第一处理系统或者第二处理系统处理,具体包括:服务器确定该业务信息中包含的用户标识,并判断该用户标识是否包含在该选定用户列表中,若是,则将该业务信息发送给新处理系统处理,否则,将该业务信息发送给原处理系统处理。也即,当配置信息是选定用户列表时,该配置信息所对应的指定条件是:业务信息的用户标识包含在该选定用户列表中。若业务信息满足该指定条件,则将该业务信息发送给新处理系统处理,否则,将该业务信息发送给原处理系统处理。
上述的这种发送方式适用于用户数量较少的应用场景。例如,可用于新处理系统的内部测试阶段,具体的,服务提供方可以模拟生成若干测试用户,并将这些测试用户的用户标识记录在选定用户列表中,从而,只有各测试用户所提交的业务信息才会被服务器发送给新处理系统进行处理,根据测试用户所提交的不同业务信息,可以很方便地构建出针对新处理系统的不同测试场景,并且不会影响到真实用户的正常使用。
需要说明的是,由于用户标识可用字符串表示,选定用户列表可用文本文件表示,则服务器可以使用全字符串匹配的方法,也可以使用正则表达式匹配的方法,来判断用户标识是否包含在选定用户列表中,以下分别举例进行说明。
当使用全字符串匹配的方法时,服务器可将预先选定的各用户标识用文本的形式记录在选定用户列表中,记录的各用户标识之间用分隔符“|”进行分割。例如,假定选定用户列表中包含有3个用户标识(每个用户标识用16位的十进制字符串表示)分别为:“2088002000377955”、“2088102130641011”、“2088102130641011”。则在用户列表中可记录为一个长字符串:
“2088002000377955|2088102130641011|2088102130641011”。
假定服务器接收到的业务信息中包含的用户标识为“2088102130641011”,则服务器首先将选定用户列表中的长字符串读取至内存中,然后调用split函数对该长字符串进行分割,获得选定用户列表中包含的各用户标识,再遍历获得的各用户标识,将每个用户标识与“2088102130641011”进行全字符串匹配,则可得到匹配结果:“2088102130641011”与选定用户列表中包含的第三个用户标识字符串完全匹配,也即,“2088102130641011”包含在选定用户列表。从而,服务器可将该业务信息发送给新处理系统进行处理。
当使用正则表达式匹配的方法时,选定用户列表中可以不记录具体的各个用户标识,而是记录一个或多个正则表达式,该正则表达式即可表示具有共同特征的成批的用户标识。继续沿用上例进行说明,假定用户标识的倒数第3位为分库位、倒数第2位为分表位。对于用户标识“2088102130641011”,其倒数第3位为“0”,倒数第2位为“1”,所表示的含义为:用户标识“2088102130641011”所对应的业务信息在处理完毕后,将被保存在服务提供方的第0号数据库的第1张数据表中。假定要将特定业务信息发送给新处理系统进行处理,其中,该特定业务信息是在处理完毕后,会被保存在第0号数据库的第1张数据表的业务信息。则服务器可在选定用户列表中记录正则表达式“^[0-9]{13}01[0-9]$”,该正则表达式的含义为:倒数第3位为“0”,倒数第2位为“1”,由16位十进制数字组成的字符串。这样,服务器接收到业务信息时,可判断该业务信息中包含的用户标识是否与该正则表达式匹配,也即,判断该用户标识是否为倒数第3位为“0”,倒数第2位为“1”,由16位十进制数字组成的字符串,若是,则服务器将该业务信息发送给新处理系统进行处理,否则,服务器将该业务信息发送给原处理系统进行处理。
另外,若需分流至新处理系统的业务信息流量所对应的用户标识(称为第二用户标识)数量,比需分流至原处理系统的业务信息流量所对应的用户标识(称为第一用户标识)数量更多时,为了减小选定用户列表的文件大小以提高服务器的处理速度,也可在选定用户列表中不记录各第二用户标识,而是记录各第一用户标识,相应地,也需要对服务器的判断逻辑进行修改,使得服务器判断接收到的业务信息中包含的用户标识,是否包含在选定用户列表中时,若判断结果为是,则将该业务信息发送给原处理系统处理,否则,则将该业务信息发送给新处理系统处理。
在本申请实施例中,当该配置信息为分流信息时,对于上述步骤S102,采用预设的与该配置信息对应的发送方式,将该业务信息发送给第一处理系统或者第二处理系统处理,具体包括:服务器确定该业务信息中包含的用户标识,其中,所述用户标识包含随机字段;并确定分流信息中包含的分流比例参数和预设模值参数,然后,提取该用户标识包含的随机字段,并确定该随机字段对分流比例参数取模的模值,再判断该模值是否与预设模值参数相同,若是,则将该业务信息发送给新处理系统处理,否则,将该业务信息发送给原处理系统处理。也即,当配置信息是分流信息时,该配置信息所对应的指定条件是:业务信息的用户标识包含的随机字段对分流比例参数取模的模值,与预设模值参数相同。若业务信息满足该指定条件,则将该业务信息发送给新处理系统处理,否则,将该业务信息发送给原处理系统处理。
一般的,用户标识可以由特定字段和随机字段组成,其中,特定字段可以是用于表示该用户的相关属性的字符串,随机字段可以是用于保证用户标识的唯一性,而随机生成的字符串。例如,对于用户标识“2088982734124290”,其第1~13位(“2088982734124”)为随机字段,第14~16位(“290”)为特定字段:第14位为分库位,第15位为分表位,第16位为校验位。服务器可仅根据各用户标识的随机字段确定特定数量的用户标识,而不用考虑各用户标识的特定字段,这样可以保证确定出的用户标识所对应的相关属性的随机性。具体的,对于上例,服务器并不考虑用户标识的第14~16位,仅考虑用户标识的第1~13位,服务器对该第1~13位组成的随机字符串取模匹配,以确定出特定数量的用户标识,从而,可以使得后续发送给新处理系统与发送原处理系统的业务信息的分库属性(由第14位分库位确定)和分表属性(由第15位分表位确定)是均匀的,进而,业务信息经过处理后也会均匀地落在各个数据库的数据表中,满足了各个数据库负载均衡的要求。继续沿用上例,对所述配置信息为分流信息时,服务器对业务信息的处理过程进行说明。
假定分流信息包含的分流比例参数为100,预设模值参数为24,服务器接收到业务信息A和业务信息B,其中,业务信息A的用户标识a为“2088982734124290”,业务信息B的用户标识b为“2088102114986997”。则服务器可用substring函数提取出用户标识a的随机字段“2088982734124”,以及提取出用户标识b的随机字段“2088102114986”,然后分别确定这两个随机字段对100取模的模值,可得对应于用户标识a的模值为:
MODa=2088982734124mod100=24。
对应于用户标识b的模值为:
MODb=2088102114986mod100=86。
显然,服务器可判断出MODa与预设模值参数相同,则服务器将业务信息A发送给新处理系统处理,而MODb与预设模值参数不相同,则服务器将业务信息B发送给原处理系统处理。
进一步的,对所述的分流比例参数进行说明。在理想的情况下,也即,在用户数量足够多(随机字段每一个可能的取值都唯一对应了一个用户),且每个用户向服务器发送业务信息的概率相同的情况下,该分流比例参数即可表示:服务器接收到的业务信息的总数量与发送给新处理系统的业务信息的数量的比例。对于上例,分流比例参数为100,其表示服务器会将接收到的业务信息的总数量的1%发送给新处理系统处理,相应的,此时预设模值可以为0~99取值区间内的任意整数(在上例中预设模值为24)。由此类推,若分流比例参数为n(n为整数,n>1),其表示服务器会将接收到的业务信息的总数量的(1/n)×100%发送给新处理系统处理,相应的,此时预设模值可以为0~n-1取值区间内的任意整数。
例如,若用户标识“2088982734124290”所对应的业务信息是服务器需发送给新处理系统处理的业务信息之一,则分流比例参数和预设模值参数可能的取值组合如下表1所示(仅列出几个典型的取值组合):
表1
表1分别示出了当服务器需分流给新处理系统处理的业务信息的比例为1/10、1/100、1/1000、1/10000时,分流信息包含的分流比例参数和预设模值参数的取值组合。
以上是分别针对配置信息包含了选定用户列表或分流信息时,对服务器相应的处理过程进行了说明,在实际应用中,配置信息中也可以同时包含选定用户列表和分流信息,则相应的,服务器可针对接收到的业务信息,只要判断出该业务信息符合选定用户列表对应的指定条件,或符合分流信息对应的指定条件,即可将该业务信息发送给新处理系统处理。或者,服务器可针对接收到的业务信息,当判断出该业务信息符合选定用户列表对应的指定条件,且符合分流信息对应的指定条件,才可将该业务信息发送给新处理系统处理。
在本申请实施例中,通过上述的方法,可根据新处理系统的稳定性状态,逐步调整发送给新处理系统处理的业务信息的数量比例,且当新处理系统的稳定性状态不好,需进行调整时,服务提供方可向服务器发送停止分流指令。服务器在接收到停止分流指令后,不再对接收到的业务信息进行判断是否发送给新处理系统处理,而是直接将接收到的业务信息均发送给原处理系统处理。
进一步的,服务器还可向新处理系统转发该停止分流指令,使得新处理系统将未完成处理的业务信息发送给原处理系统处理,从而,后续可以对新处理系统进行调整,且不会妨碍到业务信息的正常处理。当然,服务提供方也可以随时撤销该停止分流指令,使得服务器继续执行分流操作。
另外,在业务信息被发送给原处理系统或者新处理系统进行处理后,在处理过程中,可能会生成相关的业务标识信息,例如,与该业务信息对应的业务单号等。为了防止在原处理系统和新处理系统中生成相同的业务单号,导致后续将处理完毕的业务信息保存在数据库时主键冲突(一般的,会将业务单号作为数据库主键),可以在生成业务单号时,增加用于区分原处理系统和新处理系统字段,从而,可保证在原处理系统和新处理系统中生成的业务单号不重复。
图2为在实际应用中,本发明实施例提供的业务信息处理过程所涉及的设备拓扑图。其中,前台模块用于接收用户输入的业务信息,分流服务器即为本申请实施例中所述的服务器,配置信息分发模块用于向分流服务器分发配置信息,指令模块用于向分流服务器发送相应的指令,使得分流服务器开始执行分流操作或停止执行分流操作,原处理系统和新处理系统用于处理业务信息。则分流服务器在开始执行分流操作后,会根据获取的配置信息,将接收到的业务信息发送给原处理系统或者新处理系统进行处理。
图3为本发明实施例提供的业务信息处理的详细过程,具体包括以下步骤:
S301:在执行分流操作时,服务器首先获取配置信息,其中,所述配置信息包括:选定用户列表,和/或分流信息。
S302:当接收到业务信息时,确定该业务信息中包含的用户标识。
S303:判断该用户标识是否包含在选定用户列表中,若是,则执行步骤S304,否则,执行步骤S305。
S304:将该业务信息发送给新处理系统处理。
S305:确定分流信息中包含的分流比例参数和预设模值参数。
S306:提取该用户标识包含的随机字段。
S307:确定该随机字段对分流比例参数取模的模值。
S308:判断该模值是否与预设模值参数相同,若是,则执行步骤S309,否则,执行步骤S310。
S309:将该业务信息发送给新处理系统处理。
S310:将该业务信息发送给原处理系统处理。
可以看出,图3中服务器的处理逻辑为:服务器针对接收到的业务信息,只要判断出该业务信息符合选定用户列表对应的指定条件,或符合分流信息对应的指定条件,即将该业务信息发送给新处理系统处理。当然,服务器也可以采用其他的处理逻辑,例如,服务器针对接收到的业务信息,当判断出该业务信息符合选定用户列表对应的指定条件,且符合分流信息对应的指定条件,才将该业务信息发送给新处理系统处理。这里就不再对其他的处理逻辑一一赘述。
需要说明的是,除了原处理系统切换为新处理系统的应用场景,本申请实施例所提供的业务信息处理方法还可应用于其他场景。例如,当后台有多个子处理系统都可以处理业务信息时,可根据本申请实施例所提供的业务信息处理方法,由服务器将业务信息流量按照相同的分流比例,分流导向各个子处理系统进行处理,使得各子处理系统负载均衡,从而可提高各子处理系统的处理效率。
以上为本申请实施例提供的业务信息处理方法,基于同样的思路,本申请实施例还提供相应的业务信息处理装置,如图4所示。
图4为本申请实施例提供的业务信息处理装置结构示意图,具体包括:
获取模块401,用于获取配置信息,其中,所述配置信息包括:选定用户列表,和/或分流信息;
发送模块402,用于当接收到业务信息时,采用预设的与所述配置信息对应的发送方式,将所述业务信息发送给第一处理系统或者第二处理系统进行处理。
当所述配置信息为选定用户列表时,所述发送模块402具体用于,确定所述业务信息中包含的用户标识,判断所述用户标识是否包含在所述选定用户列表中,若是,则将所述业务信息发送给第二处理系统处理,否则,将所述业务信息发送给第一处理系统处理。
当所述配置信息为分流信息时,所述发送模块402具体用于,确定所述业务信息中包含的用户标识,其中,所述用户标识包含随机字段,确定所述分流信息中包含的分流比例参数和预设模值参数,提取所述用户标识包含的随机字段,确定所述随机字段对所述分流比例参数取模的模值,判断所述模值是否与所述预设模值参数相同,若是,则将所述业务信息发送给第二处理系统处理,否则,将所述业务信息发送给第一处理系统处理。
所述装置还包括:
停止模块403,用于在接收到停止分流指令后,将接收到的业务信息发送给所述第一处理系统处理;
转发模块404,用于向所述第二处理系统转发所述停止分流指令,使得所述第二处理系统将未完成处理的业务信息发送给所述第一处理系统处理。
所述第一处理系统为原处理系统,所述第二处理系统为新处理系统。
具体的上述如图4所示的装置可以位于服务器上。
本申请实施例提供一种业务信息处理方法及装置,该方法服务器获取配置信息,其中,该配置信息包括:选定用户列表,和/或分流信息,当接收到业务信息时,根据该配置信息,采用预设的与该配置信息对应的发送方式将该业务信息发送给第一处理系统或者第二处理系统进行处理,所述第一处理系统即为原处理系统,所述第二处理系统即为新处理系统。通过上述方法,由于服务器可以根据该配置信息,仅将符合该配置信息所指定的条件的业务信息发送给新处理系统处理,而不是直接将全部业务信息都发送给新处理系统处理,且又由于符合该指定的条件的业务信息的数量比例是可控的,因此,可以根据新处理系统实时的稳定性,逐步调整发送给新处理系统处理的业务信息的数量比例,直至业务信息流量全部迁移至新处理系统,增强了风险可控性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。