一种话单查重方法、装置及系统与流程

文档序号:20917823发布日期:2020-05-29 13:45阅读:260来源:国知局
一种话单查重方法、装置及系统与流程
本申请涉及通信
技术领域
,特别是涉及一种话单查重方法、装置及系统。
背景技术
:话单是指通信原始记录信息,其为用户通话的计费依据,因此需要对话单进行采集。但是话单采集过程中的重复采集或者交换机本身故障灯异常操作可能会产生重复话单,因此,需要对话单进行查重,以免因重复话单导致重复计费,引起客户投诉,造成客源流失。现有的话单查重方法,对于少量话单具有较高的查重效率,但是,随着电信行业业务的快速发展,业务数据量越来越庞大,即话单的数量越来越多,如何从海量的话单信息中高效地确定重复话单是亟需解决的问题。技术实现要素:有鉴于此,本申请提供了一种话单查重方法、装置及系统,用于从海量的话单信息中高效地确定重复话单,该方案如下:一种话单查重方法,应用于终端,包括:从目标话单提取多个关键字段;将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息;根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群;根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器;将目标标识信息发送至目标服务器,以使得目标服务器基于目标标识信息确定目标话单是否为重单。优选地,根据第一关键字段,从多个服务器集群中确定摘要信息对应的目标服务器集群,包括:从预先建立的关键字段与服务器集群标识的对应关系中,确定与第一关键字段对应的服务器集群标识,作为目标服务器集群标识;将目标服务器集群标识对应的目标服务器集群确定为目标服务器集群。优选地,根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器,包括:将第二关键字段按第一素数取模,得到第一模值;其中,第一素数根据第二关键字段确定;将第一模值按第二素数取模,得到第二模值;其中,第二素数根据第一素数确定;将第二模值按目标服务器集群中服务器的总数量取模,得到第三模值;将目标服务器集群中服务器标识为第三模值的服务器确定为目标服务器。优选地,第一关键字段和第二关键字段为以下字段中的任意两种字段:用户编号、账户编号、地市编号和主叫号码。一种话单查重方法,应用于目标服务器集群中的目标服务器,目标服务器集群为终端根据目标话单的第一关键字段从多个服务器集中确定出的服务器集群,目标服务器为终端根据目标话单的第二关键字从目标服务器集群中确定出的服务器;方法包括:接收来自终端的目标标识信息,其中,目标标识信息为终端对从目标话单提取的多个关键字段进行处理得到的、能够唯一标识目标话单的信息;根据目标标识信息确定目标话单是否为重单。优选地,根据目标标识信息确定目标话单是否为重单,包括:确定目标标识信息对应的目标内存数据块;利用哈希函数确定目标标识信息的哈希值;根据哈希值和目标内存数据块的大小确定位置指示信息,其中,位置指示信息用于指示目标标识信息在目标内存数据块中的位置;根据目标内存数据块中、位置指示信息所指示的位置处的数值确定目标话单是否为重单。优选地,利用哈希函数确定目标标识信息的哈希值,包括:利用10个不同的哈希函数分别确定目标标识信息的哈希值,获得10个哈希值。一种话单查重装置,应用于终端,包括:关键字段模块、话单标识确定模块、服务器集群确定模块、服务器确定模块和话单标识模块;关键字段模块,用于从目标话单提取多个关键字段;话单标识确定模块,用于将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息;服务器集群确定模块,用于根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群;服务器确定模块,用于根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器;话单标识模块,用于将目标标识信息发送至目标服务器,以使得目标服务器基于目标标识信息确定目标话单是否为重单。一种话单查重装置,应用于目标服务器集群中的目标服务器,目标服务器集群为应用于终端的话单查重装置根据目标话单的第一关键字段从多个服务器集中确定出的服务器集群,目标服务器为应用于终端的话单查重装置根据目标话单的第二关键字从目标服务器集群中确定出的服务器;话单查重装置包括:信息接收模块和话单查重模块;信息接收模块,用于接收来自终端的目标标识信息,其中,目标标识信息为终端对从目标话单提取的多个关键字段进行处理得到的、能够唯一标识目标话单的信息;话单查重模块,用于根据目标标识信息确定目标话单是否为重单。一种话单查重系统,包括:终端和多个服务器集群;终端,用于从目标话单提取多个关键字段;将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息;根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群;根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器;将目标标识信息发送至目标服务器;目标服务器,用于接收目标标识信息,并根据目标标识信息确定目标话单是否为重单。经由上述的技术方案可知,本申请提供的话单查重方法中,终端可基于目标话单的第一关键字段从多个服务器集群中确定目标服务器集群,并可进一步基于目标话单的第二关键字段从目标服务器集群中确定目标服务器,确定出目标服务器后,将目标话单的目标标识信息发送至目标服务器,目标服务器可根据目标话单的目标标识信息确定目标话单是否为重单。针对海量的话单信息,为了能够获得较高的查重效率,本申请将服务器集群引入话单查重,并在此基础上提出通过两级路由策略确定对于待查重话单的查重服务器,从而实现待查重话单的查重,即本申请提供的话单查重方法具有较高的查重效率,用户体验较好。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例提供的应用于终端的话单查重方法流程图;图2为确定目标服务器集群以及目标服务器的过程示意图;图3为本申请实施例提供的应用于目标服务器集群中的目标服务器的话单查重方法流程图;图4为位置指示信息指示目标标识信息在目标内存数据块中的位置示意图;图5为一个目标内存数据块划分的342个目标内存数据子块在mdb内存数据表中的存放形式示意图;图6为一个mdb内存数据表保存n个内存数据块示意图;图7为本申请实施例提供的应用于终端的话单查重装置的结构示意图;图8为本申请实施例提供的应用于目标服务器集群中的目标服务器的话单查重装置的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供了一种话单查重方法、装置及系统,其中,话单查重方法包括应用于终端的方法和应用于服务器的方法,相应的,话单查重装置可包括应用于终端的话单查重装置和应用于服务器的话单查重装置;话单查重系统可包括终端和多个服务器集群,其中,每个服务器集群包括多个服务器,每个服务器可提供查重服务。下面首先对应用于终端的话单查重方法进行介绍。应当理解,用户每一次通话都会产生话单,大量用户的多次通话将产生大量话单,本申请实施例将大量话单中的任一话单作为目标话单,以对目标话单进行查重为例进行介绍,请参阅图1,示出了一种应用于终端的话单查重方法的流程示意图,该方法可以包括:步骤s101、从目标话单提取多个关键字段。可选的,可以基于话单查重键得到目标话单中的多个关键字段。这里,多个关键字段至少包括第一关键字段和第二关键字段,并且第一关键字段和第二关键字段不同。需要说明的是,第一关键字段中的“第一”和第二关键字段中的“第二”仅用于区分两个关键字段,并不能说明两个关键字段的顺序。在一可选实施例中,从目标话单中提取的关键字段可以包括以下字段中的任两种或多种:目标话单的流水号、用户编号、账户编号、地市编号、主叫号码、被叫号码、起始时间、结束时间、通话时长、通话性质和产生目标话单的网元标识。其中,用户编号为用户使用的终端的编号,账户编号是指用户的编号,地市编号为电话区号,产生目标话单的网元标识为负责目标话单的基站设备的设备编号,上述通话性质包括但不限于:市内通话、国内漫游、国际漫游。当然,关键字段并不限于上述提及的字段,除此之外也可以是其他字段,例如用户标识。继上文介绍,第一关键字段和第二关键字段可以为用户编号、账户编号、地市编号和主叫号码中的任意两种字段,例如,第一关键字段为地市编号,第二关键字段为账户编号。步骤s102、将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息。在一种可能的实现方式中,可以利用消息摘要算法(messagedigestalgorithm,md5)将多个关键字段处理成摘要信息即md5值,该md5值即为目标标识信息。这里,消息摘要算法是一种密码散列函数,其可以产生128位(16字节)的散列值,用于确保多个关键字段传输完整一致。也即,若利用消息摘要算法得到目标标识信息,则该目标标识信息为16字节的字符串。可选的,md5的数据结构的大致实现如下:在另一种可能的实现方式中,可以利用安全散列算法(securehashalgorithm,sha)将多个关键字段处理成摘要信息,例如利用sha-1算法将多个关键字段处理成摘要信息,该消息摘要信息即为目标标识信息。这里,sha-1算法是一种密码散列函数,其可以产生160位(20字节)的散列值。也即,若利用sha-1算法得到目标标识信息,则该目标标识信息为20字节的字符串。需要说明的是,上述利用md5算法以及sha-1算法得到目标标识信息仅为示例,除此之外也可以利用其它算法得到目标标识信息。步骤s103、根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群。本申请实施例通过多个服务器集群实现话单查重。可以理解的是,若要对目标话单进行查重,首先需要确定用于对目标话单进行查重的服务器位于哪个集群。具体的,可以根据第一关键字段,从多个服务器集群中确定出用于对目标话单进行查重的服务器所在的服务器集群,假设服务器集群按照不同的地市建立,每个地市的服务器集群通过地市编号标识,则s103中的第一关键字段可以为地市编号,假设目标话单中的地市编号为0571,则可确定用于对目标话单进行查重的服务器位于标识为0571的服务器集群。步骤s104、根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器。步骤s103确定出了用于对目标话单进行查重的服务器所在的服务器集群,而本步骤的目的在于从确定出的服务器集群中进一步确定出用于对目标话单进行查重的服务器。本实施例可根据第二关键字段,从目标服务器集群中确定出用于对目标话单进行查重的目标服务器。假设第二关键字段为账户编号,目标服务器集群为标识为0571的服务器集群,则可根据账户编号从标识为0571的服务器集群确定出目标服务器。步骤s105、将目标标识信息发送至目标服务器,以使得目标服务器基于目标标识信息确定目标话单是否为重单。目标服务器基于目标标识信息确定目标话单是否为重单的过程可参见后续应用于服务器的话单查重方法。本申请提供的话单查重方法中,终端可基于目标话单的第一关键字段从多个服务器集群中确定目标服务器集群,并可进一步基于目标话单的第二关键字段从目标服务器集群中确定目标服务器,确定出目标服务器后,将目标话单的目标标识信息发送至目标服务器,以使目标服务器可根据目标话单的目标标识信息确定目标话单是否为重单。针对海量的话单信息,为了能够获得较高的查重效率,本申请将服务器集群引入话单查重,并在此基础上提出通过两级路由策略确定对于待查重话单的查重服务器,从而实现待查重话单的查重,即本申请提供的话单查重方法具有较高的查重效率,用户体验较好。以下对上述实施例中的“步骤s103、根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群”的具体实现过程进行介绍。在一可选实施例中,可以预先建立第一关键字段和服务器集群标识的对应关系。示例性的,第一关键字段为地市编号,则第一关键字段与服务器集群标识的对应关系如下表所示:表1第一关键字段和服务器集群标识的对应关系第一关键字段服务器集群标识05710571集群021021集群010010集群……需要说明的是,上述第一关键字段“0571”、“021”、“010”以及服务器集群标识“0571集群”、“021集群”、“010集群”仅为示例,并不作为本申请的限定。基于此,步骤s103,根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群的过程可以包括:步骤a1、从预先建立的关键字段与服务器集群标识的对应关系中,确定与第一关键字段对应的服务器集群标识,作为目标服务器集群标识。以第一关键字段为地市编号为例,假设第一关键字段为0571,则可以从上述表1所示的对应关系中查找与0571对应的服务器集群标识,即“0571集群”标识,则该“0571集群”标识即为目标服务器集群标识。步骤a2、将目标服务器集群标识对应的目标服务器集群确定为目标服务器集群。每一服务器集群都有唯一的服务器集群标识,可以通过该服务器集群标识,在多个服务器集群中确定能够对目标话单进行查重的服务器集群为目标服务器集群。例如,若得到的目标服务器集群标识为“0571集群”,则多个服务器集群中的0571集群即为目标服务器集群。以下对上述实施例中的“步骤s104、根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器”的具体过程进行介绍。本案发明人实现本步骤时的初步想法为:通过对第二关键字段直接取模的方式,确定目标服务器,即:将第二关键字段按照目标服务器集群中服务器的总数量取模,得到模值,进而将目标服务器集群中服务器标识为该模值的服务器确定为目标服务器。下表2示出了多个话单的第一关键字段和第二关键字段的一示例:表2第一关键字段和第二关键字段假设按照实际需要设定的0571集群以及021集群中服务器的总数量均为10台,那么将第二关键字段按照10取模后,得到的目标服务器标识可以参见表3所示。表3目标服务器集群标识以及目标服务器标识参见表3所示,1号话单的目标标识信息将被发往0571集群的1号服务器,2号话单的目标标识信息将被发往0571集群的2号服务器,…,以此类推,10号话单的目标标识信息将被发往0571集群的10号服务器,11号~20号话单的目标标识信息被发往021集群的0号服务器。由上述过程可知,对第二关键字段直接取模的方式能够将不同话单分别对应的标识信息发往不同服务器集群中的服务器,例如1至10号话单的目标标识信息能够被发往0571集群中的不同服务器,从而能够同时采用多个服务器集群中的多个服务器对更多话单进行查重,相比于仅通过一台服务器对话单进行查重,提高了话单查重效率。但是该方法可能出现服务器集群中部分服务器处理的话单数量大,而另外的服务器处理的话单数量少,甚至没有的情况,例如11~20号话单的目标标识信息均被发往021集群中的0号服务器,而021集群中的1-9号服务器则未接收到任何目标标识信息,这导致服务器的负载不均衡,资源无法得到充分利用。经本案发明人进一步研究,提出了一种能够相对均匀地将目标标识信息发往各服务器的方法,该方法具体如下:步骤b1、将第二关键字段按第一素数取模,得到第一模值。其中,第一素数根据第二关键字段确定。本步骤中,第一模值的确定方法可以为:第一模值=mod(coid_id,n1)。其中,mod为取模运算,coid_id为第二关键字段,n1为第一素数。可选的,第一素数n1的确定方法为:将第二关键字段的编码位数的二分之一作为n1的位数,根据实际选取该位数内的一个素数作为n1,其中,若第二关键字段的编号位数的二分之一不为整数,则通过向下取整的形式得到n1的位数。当然,也可以通过向上取整的形式得到n1的位数。以第二关键字段为账户编号为例,该账户编号的编码位数通常为8至12位。以账户编号为100010001为例,编码位数为9位,编码位数的二分之一为4.5,则向下取整得到n1的位数为4位,那么选取一个4位数的素数作为第一素数n1,例如选取1021作为n1。那么,第一模值为1009。步骤b2、将第一模值按第二素数取模,得到第二模值。其中,第二素数根据第一素数确定。本步骤中,第二模值的确定方法可以为:第二模值=mod(第一模值,n2)。其中,mod为取模运算,n2为第二素数。可选的,第二素数n2的确定方法为:将第一素数的编码位数的二分之一作为n2的位数,根据实际选取该位数内的一个素数作为n2,其中,若第一素数的编号位数的二分之一不为整数,则通过向下取整的形式得到n2的位数。当然,也可以通过向上取整的形式得到n2的位数。继步骤b1中例子分析,第一素数为1021,编码位数为4位,编码位数的二分之一为2,则确定n2的位数为2位,那么选取一个2位数的素数作为第二素数n2,例如选取97作为n2。那么,第二模值为39。步骤b3、将第二模值按目标服务器集群中服务器的总数量取模,得到第三模值。继步骤b2中例子分析,以目标服务器集群中服务器的总数量为10为例,那么第二模值39按照10取模后,得到的第三模值为9。步骤b4、将目标服务器集群中服务器标识为第三模值的服务器确定为目标服务器。根据表2示出的第一关键字段和第二关键字段,按上述步骤b1~b4确定的目标服务器如下表所示:表4根据表2中的关键字段确定的目标服务器参见表4所示,1号话单的目标标识信息将被发往0571集群的9号服务器,2号话单的目标标识信息将被发往0571集群的0号服务器,…,以此类推,20号话单的目标标识信息将被发往021集群的5号服务器。从表4可以看出,步骤b1~b4所示的方法能够将不同话单分别对应的标识信息发往不同服务器集群中的不同服务器,其中每一服务器需要处理的目标话单的数量相差较小,从而能够同时通过多个服务器集群中的多个服务器对话单进行查重,大大提高了话单查重效率。下面对应用于目标服务器集群中的目标服务器的话单查重方法进行介绍。由前述介绍可知,目标服务器集群为终端根据目标话单的第一关键字段从多个服务器集中确定出的服务器集群,目标服务器为终端根据目标话单的第二关键字从目标服务器集群中确定出的服务器。请参阅图3,示出了一种应用于目标服务器集群中的目标服务器的话单查重方法的流程示意图,该方法可以包括:步骤s301、接收来自终端的目标标识信息。其中,目标标识信息为终端对从目标话单提取的多个关键字段进行处理得到的、能够唯一标识目标话单的信息。本步骤中的目标标识信息详细可参照前述实施例中介绍,这里不再重复赘述。步骤s302、根据目标标识信息确定目标话单是否为重单。由于目标标识信息与目标话单一一对应,因此可以根据目标标识信息确定目标话单是否为重单。本申请提供的话单查重方法中,终端可基于目标话单的第一关键字段从多个服务器集群中确定目标服务器集群,并可进一步基于目标话单的第二关键字段从目标服务器集群中确定目标服务器,确定出目标服务器后,将目标话单的目标标识信息发送至目标服务器,目标服务器可根据目标话单的目标标识信息确定目标话单是否为重单。针对海量的话单信息,为了能够获得较高的查重效率,本申请将服务器集群引入话单查重,并在此基础上提出通过两级路由策略确定对于待查重话单的查重服务器,从而实现待查重话单的查重,即本申请提供的话单查重方法具有较高的查重效率,用户体验较好。下面对上述实施例中的“步骤s302、根据目标标识信息确定目标话单是否为重单”进行介绍。在一可选实施例中,可以基于bloomfilter算法对目标话单进行查重,则步骤s302,根据目标标识信息确定目标话单是否为重单的过程可以包括:步骤c1、确定目标标识信息对应的目标内存数据块。可以根据目标标识信息,确定目标内存数据块。本申请实施例中,内存数据块可以采用mdb(memorydatabase,内存数据库)内存数据表的结构进行存储,该mdb内存数据表按照记录进行存放,其中记录包含两个字段:第一个字段为下标offset,用于表征地址偏移量;第二个字段为内存数据子块,该内存数据子块为对内存数据块进行划分得到的,其大小与哈希值的个数以及offset的大小相关。需要说明的是,mdb具有至少以下优势:第一,mdb可以提供ha(highavailability,高可用性)机制,ha是指mdb按双机高可用部署,从而在mdb故障时,终端能够发现故障并自动连接到备用mdb中继续进行话单查重处理;第二,mdb能够将存储的记录写入日志,以在需要时基于redo进行记录的恢复。步骤c2、利用哈希函数确定目标标识信息的哈希值。可选的,可以根据查重的错误率设置哈希值的个数,其中查重的错误率与内存数据块的大小、话单数量、哈希值的个数成比例关系。实验证实,当使用5个以上的哈希值,对全局的错误率影响程度将逐渐降低。本申请实施例中,为了能够满足超过十亿话单的查重处理,可以采用10个哈希值进行散列。可选的,定义哈希值个数的大致实现为:#definehash_cnt10。在确定哈希值的个数后,可以按照设置的哈希值的个数对目标标识信息进行哈希函数处理,得到哈希值。本申请实施例中设置的哈希值的个数为10,那么可以利用10个不同的哈希函数分别确定目标标识信息的哈希值,获得10个哈希值。当然,上述哈希值的个数为10仅为示例,除此之外可以根据实际需要设定哈希值的个数。步骤c3、根据哈希值和目标内存数据块的大小确定位置指示信息。其中,位置指示信息用于指示目标标识信息在目标内存数据块中的位置。可选的,可以按照内存数据块的大小对哈希值进行取模运算得到哈希模值,将哈希模值作为位置指示信息。本申请实施例中由于哈希值的个数为10,因此哈希模值的个数也为10,即位置指示信息的个数为10,该10个位置指示信息能够指示目标标识信息在目标内存数据块中的10个位置。假设得到的10个位置指示信息分别为:1、3、6、7、11、33、50、58、65533、65535,则其指示目标标识信息在目标内存数据块中的位置可以参见图4所示。需要说明的是,位置指示信息指示目标标识信息在目标内存数据块中的位置时是从0开始的,例如图4中,位置指示信息1指示目标标识信息位于目标内存数据块的第2位。步骤c4、根据目标内存数据块中、位置指示信息所指示的位置处的数值确定目标话单是否为重单。在介绍本步骤之前,先对内存数据块与mdb内存数据表的关系进行介绍。本申请实施例中,为了保障查重的正确率,可以设计采用64kbit大小的内存数据块进行查重运算,但是在每次插入或者更新操作必定产生8kb的冗余信息。为了使每次冗余信息比较小,每条记录的定义必须较小才可以满足需求,所以在此基础上,只需将64kbit内存数据块切割成342个24字节为一块的内存数据子块便可满足需求。其中,任一24字节的内存数据子块用于存放4字节的offset和20字节的哈希值(每一哈希值的大小为2字节,本申请采用10个哈希值,因此共20字节)。上述任一24字节的内存数据子块的数据结构的大致实现如下:其中,st_bf_info为一个内存数据子块,其数据结构大小为24字节,即4字节的offset和20字节的哈希值。前述已经说明了,内存数据块可以采用mdb内存数据表的结构进行存储,以一个mdb内存数据表仅存放一个内存数据块为例,一个64kbit的目标内存数据块切割成342个24字节为一块的目标内存数据子块后,其在mdb内存数据表中的存放形式可以参见图5所示。需要说明的是,图5是为了更清楚地展现offset与目标内存数据子块的关系,实际上offset占用的4字节内存是在目标内存数据子块中的,也即箭头指向的mdb内存数据表中一条记录大小为24字节,而不是28字节。本申请实施例中,一个mdb内存数据表可以存放多个内存数据块,下面对mdb内存数据表存放内存数据块的个数进行介绍。应当理解,一个mdb内存数据表存放的内存数据块的最大个数可以根据offset的大小决定。具体地,由于offset的大小为4字节(32bit),可以使用的数值为0至232-1,则一个mdb内存数据表至多可以保存(232/342)=12558383个内存数据块,具体可以参见图6所示(图6中k为4294966986)。本申请实施例中,一台服务器实际为话单分配的mdb内存数据表的大小可以根据需要查重的话单的总数量确定,即一台服务器为话单分配的内存数据块的个数根据话单的总数量确定。具体地,将话单的总数量用cdrtotal表示,将一个内存数据块能够划分的内存数据子块的个数用vbloom_count表示(本申请实施例中,vbloom_count为342),则存放cdrtotal个话单实际需要的内存数据块的个数为:cdrtotal/1524+1,相应的,存放cdrtotal个话单实际需要的内存数据子块的个数为:(cdrtotal/1524+1)*vbloom_count。这里,1524为一个内存数据块能够查重的话单的最大个数。该最大个数的确定方法为:为了控制查重的错误率在十亿分之一之下,应当保证内存数据块的大小与话单个数之比为固定值43,本申请实施例中,一个内存数据块的大小为64kbit,则一个内存数据块能够查重的话单个数约为1524。接下来以举例形式对上述的“步骤c4、根据目标内存数据块中、位置指示信息所指示的位置处的数值确定目标话单是否为重单”进行介绍。假设对目标话单进行查重时,确定的目标内存数据块为图6所示内存数据块1,则其划分得到的342个内存数据子块对应mdb内存数据表中的offset为0至341,并且步骤c3确定的位置指示信息分别为:1、3、6、7、11、33、50、58、65533和65535。由于目标内存数据块被划分为342个目标内存数据子块,因此需要首先根据10个位置指示信息,确定目标标识信息在目标内存数据块的目标内存数据子块中的位置。针对位置指示信息1而言,1/192(一个内存数据子块的大小为24字节,即192bit)的整数部分为0,余数部分为1;其中,整数部分的0表示目标标识信息位于offset为0的目标内存数据子块中,余数部分的1表示目标标识信息位于offset为0的目标内存数据子块(目标内存数据子块1)中的第2个位置处。针对位置指示信息3而言,3/192的整数部分为0,余数部分为3;其中,整数部分的0表示目标标识信息位于offset为0的目标内存数据子块中,余数部分的3表示目标标识信息位于offset为0的目标内存数据子块(目标内存数据子块1)中的第4个位置处。…以此类推,针对位置指示信息65535而言,65535/192的整数部分为341,余数部分为63;其中,整数部分的341表示目标标识信息位于offset为341的目标内存数据子块中,余数部分的63表示目标标识信息位于offset为341的目标内存数据子块(目标内存数据子块342)中的第64个位置处。其次,根据目标标识信息在目标内存数据子块中的位置处的数值为第一数(比如1)还是第二数(比如0),确定目标话单是否为重单。其中,若目标标识信息在目标内存数据子块中的具体位置处的数值均为第一数(比如1),则确定目标话单为重单,否则为非重单。以第一数为1,第二数为0为例,假设各位置指示信息所指示的位置处的数值为图4所示(图4为了展示方便,并未对目标内存数据块进行划分),即位置指示信息1所指示的位置处的数值为1,位置指示信息3所指示的位置处的数值为0,…,位置指示信息65535所指示的位置处的数值为0,由于各位置指示信息所指示的位置处的数值不全为1,因此,确定目标话单为非重单。进一步的,在步骤c4之后,本申请还可以包括:若目标话单为重单,将目标话单为重单的信息返回至终端;若目标话单为非重单,将目标话单为非重单的信息返回至终端,以使得终端将目标话单添加至话单集合中,并且将目标内存数据块中位置指示信息所指示的位置处的数值由第二数变(比如0)更新为第一数(比如1)。仍以上一示例为例,将目标内存数据块中位置指示信息所指示的位置处的0变更为1后,可以参见图4中查重后的目标内存数据块。综上,本申请实施例中,由于目标服务器采用mdb内存数据表和bloomfilter算法相结合的方式,并且在确定位置指示信息所指示的目标标识信息在mdb内存数据表中的位置时采用两级哈希(两级哈希是指:确定目标标识信息对应的目标内存数据块,以及确定目标内存数据块中、位置指示信息所指示的位置),从而使得本申请采用算法的复杂度为o(c),即算法复杂度不受话单数量的影响,而算法复杂度能够决定查重性能,因此本申请能够高效地进行话单查重。实验证明,目标服务器从接收到一条目标话单的查重请求开始,直至返回查重结果,只需要100us,并且在高并发的情况下,并发能力达到每秒查重50万条话单。本申请实施例还提供了一种话单查重系统,下面对本申请实施例提供的话单查重系统进行描述,下文描述的话单查重系统与上文描述的应用于终端的话单查重方法及应用于服务器的话单查重方法可相互对应参照。本申请实施例提供的话单查重系统可以包括:终端和多个服务器集群。终端,用于从目标话单提取多个关键字段;将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息;根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群;根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器;将目标标识信息发送至目标服务器。目标服务器,用于接收目标标识信息,并根据目标标识信息确定目标话单是否为重单。本申请提供的话单查重系统中,终端可基于目标话单的第一关键字段从多个服务器集群中确定目标服务器集群,并可进一步基于目标话单的第二关键字段从目标服务器集群中确定目标服务器,确定出目标服务器后,将目标话单的目标标识信息发送至目标服务器,目标服务器可根据目标话单的目标标识信息确定目标话单是否为重单。针对海量的话单信息,为了能够获得较高的查重效率,本申请将服务器集群引入话单查重,并在此基础上提出通过两级路由策略确定对于待查重话单的查重服务器,从而实现待查重话单的查重,即本申请提供的话单查重方法具有较高的查重效率,用户体验较好。与上述实施例中应用于终端的话单查重方法、应用于服务器的话单查重方法以及话单查重系统对应,本申请实施例还提供了两种装置,接下来分别介绍。第一种:本申请实施例提供了一种应用于终端的话单查重装置,下面对本申请实施例提供的应用于终端的话单查重装置进行描述,下文描述的应用于终端的话单查重装置与上文描述的应用于终端的话单查重方法可相互对应参照。请参阅图7,示出了本申请实施例提供的应用于终端的话单查重装置的结构示意图,如图7所示,该应用于终端的话单查重装置可以包括:关键字段模块71、话单标识确定模块72、服务器集群确定模块73、服务器确定模块74和话单标识模块75。关键字段模块71,用于从目标话单提取多个关键字段。话单标识确定模块72,用于将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息。服务器集群确定模块73,用于根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群。服务器确定模块74,用于根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器。话单标识模块75,用于将目标标识信息发送至目标服务器,以使得目标服务器基于目标标识信息确定目标话单是否为重单。本申请提供的话单查重装置中,终端可基于目标话单的第一关键字段从多个服务器集群中确定目标服务器集群,并可进一步基于目标话单的第二关键字段从目标服务器集群中确定目标服务器,确定出目标服务器后,将目标话单的目标标识信息发送至目标服务器,目标服务器可根据目标话单的目标标识信息确定目标话单是否为重单。针对海量的话单信息,为了能够获得较高的查重效率,本申请将服务器集群引入话单查重,并在此基础上提出通过两级路由策略确定对于待查重话单的查重服务器,从而实现待查重话单的查重,即本申请提供的话单查重方法具有较高的查重效率,用户体验较好。在一种可能的实现方式中,上述服务器集群确定模块可以包括:集群标识确定单元和集群标识识别单元。集群标识确定单元,用于从预先建立的关键字段与服务器集群标识的对应关系中,确定与第一关键字段对应的服务器集群标识,作为目标服务器集群标识。集群标识识别单元,用于将目标服务器集群标识对应的目标服务器集群确定为目标服务器集群。本申请实施例中,通过第一关键字段确定目标服务器集群的方式,能够使得一个服务器集群仅对能够发送至该集群的标识信息进行查重处理,更具针对性,且无需对全部话单信息进行查重,话单查重效率更高。在一种可能的实现方式中,上述服务器确定模块可以包括:第一模值确定单元、第二模值确定单元、第三模值确定单元和服务器标识识别单元。第一模值确定单元,用于将第二关键字段按第一素数取模,得到第一模值。其中,第一素数根据第二关键字段确定。第二模值确定单元,用于将第一模值按第二素数取模,得到第二模值。其中,第二素数根据第一素数确定。第三模值确定单元,用于将第二模值按目标服务器集群中服务器的总数量取模,得到第三模值。服务器标识识别单元,用于将目标服务器集群中服务器标识为第三模值的服务器确定为目标服务器。本申请实施例能够将不同话单分别对应的标识信息发往不同服务器集群中的服务器,其中每一服务器需要处理的目标话单的数量相差较小,从而能够同时通过多个服务器集群及其中服务器对话单进行查重,大大提高了话单查重效率。第二种:本申请实施例提供了一种应用于服务器的话单查重装置,下面对本申请实施例提供的应用于服务器的话单查重装置进行描述,下文描述的应用于服务器的话单查重装置与上文描述的应用于服务器的话单查重方法可相互对应参照。请参阅图8,示出了本申请实施例提供的应用于目标服务器集群中的目标服务器的话单查重装置的结构示意图,如图8所示,该应用于目标服务器集群中的目标服务器的话单查重装置可以包括:信息接收模块81和话单查重模块82。信息接收模块81,用于接收来自终端的目标标识信息。其中,目标标识信息为终端对从目标话单提取的多个关键字段进行处理得到的、能够唯一标识目标话单的信息。话单查重模块82,用于根据目标标识信息确定目标话单是否为重单。本申请提供的话单查重装置中,终端可基于目标话单的第一关键字段从多个服务器集群中确定目标服务器集群,并可进一步基于目标话单的第二关键字段从目标服务器集群中确定目标服务器,确定出目标服务器后,将目标话单的目标标识信息发送至目标服务器,目标服务器可根据目标话单的目标标识信息确定目标话单是否为重单。针对海量的话单信息,为了能够获得较高的查重效率,本申请将服务器集群引入话单查重,并在此基础上提出通过两级路由策略确定对于待查重话单的查重服务器,从而实现待查重话单的查重,即本申请提供的话单查重方法具有较高的查重效率,用户体验较好。在一种可能的实现方式中,话单查重模块可以包括:数据块确定单元、哈希值确定单元、位置指示信息确定单元和话单查重单元。数据块确定单元,用于确定目标标识信息对应的目标内存数据块。哈希值确定单元,用于利用哈希函数确定目标标识信息的哈希值。位置指示信息确定单元,用于根据哈希值和目标内存数据块的大小确定位置指示信息。其中,位置指示信息用于指示目标标识信息在目标内存数据块中的位置。话单查重单元,用于根据目标内存数据块中、位置指示信息所指示的位置处的数值确定目标话单是否为重单。在一种可能的实现方式中,哈希值确定单元具体用于利用10个不同的哈希函数分别确定目标标识信息的哈希值,获得10个哈希值。本申请实施例中,由于目标服务器采用mdb内存数据库和bloomfilter算法相结合的方式,并且在确定位置指示信息所指示的目标标识信息在mdb内存数据表中的具体位置时采用两级哈希(确定目标标识信息对应的目标内存数据块,以及确定目标内存数据块中、位置指示信息所指示的位置),从而使得本申请采用算法的复杂度为o(c),即算法复杂度不受话单数量的影响,而算法复杂度能够决定查重性能,因此本申请能够从海量的话单信息中高效地确定重复话单。本申请实施例还提供了一种终端,该终端的硬件结构可以包括:至少一个处理器,至少一个通信接口,至少一个存储器和至少一个通信总线;在本申请实施例中,处理器、通信接口、存储器、通信总线的数量为至少一个,且处理器、通信接口、存储器通过通信总线完成相互间的通信;处理器可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;存储器可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:从目标话单提取多个关键字段;将多个关键字段处理成能够唯一标识目标话单的信息作为目标标识信息;根据多个关键字段中的第一关键字段,从多个服务器集群中确定目标服务器集群;根据多个关键字段中的第二关键字段,从目标服务器集群中确定目标服务器;将目标标识信息发送至目标服务器,以使得目标服务器基于目标标识信息确定目标话单是否为重单。可选的,所述程序的细化功能和扩展功能可参照上文描述。本申请实施例还提供了一种服务器,该服务器的硬件结构可以包括:至少一个处理器,至少一个通信接口,至少一个存储器和至少一个通信总线;在本申请实施例中,处理器、通信接口、存储器、通信总线的数量为至少一个,且处理器、通信接口、存储器通过通信总线完成相互间的通信;处理器可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;存储器可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:接收来自终端的目标标识信息,其中,目标标识信息为终端对从目标话单提取的多个关键字段进行处理得到的、能够唯一标识目标话单的信息;根据目标标识信息确定目标话单是否为重单。可选的,所述程序的细化功能和扩展功能可参照上文描述。本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述应用于终端的话单查重方法。本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述应用于服务器的话单查重方法。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1