去重方法、装置、设备、介质及产品与流程

文档序号:33371335发布日期:2023-03-08 02:22阅读:29来源:国知局
去重方法、装置、设备、介质及产品与流程

1.本公开涉及数据处理领域,尤其涉及数据去重技术领域,具体涉及一种去重方法、装置、设备、介质及产品。


背景技术:

2.在当前大数据时代的飞速发展下,视频和图文都属于快消品,用户频繁刷新。在信息流推荐场景下为了提高用户体验,提升用户对新鲜资源的感知,对于用户消费过的内容在一段时间内没必要继续推荐,因此对于推荐内容需要进行去重处理。而不同的业务场景对于去重时长的要求也不同,并且随着业务发展,去重时长也需要随时调整。


技术实现要素:

3.本公开提供了一种用于去重方法、装置、设备、介质及产品。
4.根据本公开的一方面,提供了去重方法,包括:
5.响应于去重请求,确定所述去重请求所属的待去重时间段;
6.确定所述待去重时间段包括的至少一个目标去重周期;
7.将所述目标去重周期对应的去重过滤器,作为目标去重过滤器;
8.根据所述目标去重过滤器对所述去重请求中的待去重数据进行处理,得到去重结果。
9.根据本公开的另一方面,提供了一种去重装置,包括:
10.待去重时间段确定模块,用于响应于去重请求,确定所述去重请求所属的待去重时间段;
11.目标去重周期确定模块,用于确定所述待去重时间段包括的至少一个目标去重周期;
12.目标去重过滤器确定模块,用于将所述目标去重周期对应的去重过滤器,作为目标去重过滤器;
13.去重结果确定模块,用于根据所述目标去重过滤器对所述去重请求中的待去重数据进行处理,得到去重结果。
14.根据本公开的另一方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开中任一实施例所述的去重方法。
18.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开中任一实施例所述的去重方法。
19.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算
机程序在被处理器执行时实现根据本公开中任一实施例所述的去重方法。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开实施例的一种去重方法的示意图;
23.图2是根据本公开实施例的另一种去重方法的示意图;
24.图3是根据本公开实施例的又一种去重方法的示意图;
25.图4是根据本公开实施例的又一种去重方法的示意图;
26.图5是根据本公开实施例的又一种去重方法的示意图;
27.图6是根据本公开实施例的又一种去重方法的示意图;
28.图7是根据本公开实施例的一种去重服务的整体架构图;
29.图8是根据本公开实施例的一种去重装置的结构示意图;
30.图9是用来实现本公开实施例的去重方法的电子设备的框图。
具体实施方式
31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
32.图1是根据本公开实施例的一种去重方法的示意图,本实施例可适用于对去重方式进行优化的情况,该方法可以通过去重装置执行,该装置可以通过软件和/或硬件的方式实现,并集成在电子设备中;本实施例中涉及到的电子设备可以为等本地服务器等具有通信和计算能力的设备。具体的,参考图1,该方法具体包括如下:
33.s110、响应于去重请求,确定去重请求所属的待去重时间段。
34.其中,去重请求可以是用户发起的对搜索内容的去重请求,或者服务端发起的对用户的推荐内容的去重请求,例如,用户在刷视频期间,判断向用户推荐的下一条视频是否已经推荐过,若已经推荐过,则更换推荐视频,并继续对推荐视频进行去重判断,否则,则确定该视频可以向用户进行推荐。待去重时间段是指对去重请求中的待去重数据进行重复判断的时间段,例如,判断向用户推荐的下一条视频在三天内是否已经推荐过,则待去重时间段为三天内。
35.具体的,获取到待去重内容,针对该待去重内容发起去重请求,响应于该去重请求,并根据待去重内容对应的去重时长确定需要对该待去重内容进行重复查询的时间段,该时间段为待去重时间段。示例性的,获取到服务端为用户确定的下一个推荐产品,根据该推荐产品生成去重请求,去重请求的请求生成时刻为11月7号,同时根据预先设置的配置信息确定该推荐产品对应的去重时长为三天,则需要确定三天内是否向用户推荐过该产品,根据去重请求的请求时刻确定与去重时长对应的待去重时间段为11月5号到11月7号,待去重时间段的具体精确时间点可以根据去重时长的要求精准度进行确定。
36.s120、确定待去重时间段包括的至少一个目标去重周期。
37.其中,去重周期是指去重服务中单个去重过滤器所支持的查重时间单位,例如,单个去重过滤器所支持的查重时间单位为一天,则表示在单个去重过滤器中分别设置一天内所需要查询重复的内容。示例性的,按照所需的查重时间单位对去重过滤器进行切分,在单个去重过滤器的创建时间后当前时间的时间差达到去重周期长度后,则重新创建一个新的去重过滤器。通过对单个去重过滤器的去重周期时长进行控制,可以有效控制单个去重过滤器的大小以及查重内容对应时间,便于对去重过滤器进行管理,以及对待去重时间段的长度进行控制。
38.具体的,根据待去重时间段和去重服务中包括的候选去重周期,确定待去重时间段中所包括的所有候选去重周期,作为目标去重周期,示例性的,在上述示例的基础上,去重周期为一天,则在去重服务中包括了各天对应的候选去重周期,每天对应的候选去重周期对应的去重过滤器中保存了该天内所需查询重复的内容,待去重时间段为11月5号到11月7号,则确定待去重时间段中包括了三个候选去重周期,即5号、6号和7号三个候选去重周期,将这三个候选去重周期确定为目标去重周期。
39.在本实施例的另一个可选实现方式中,s120,包括:
40.确定去重请求对应的请求时刻,并将请求时刻所属的候选去重周期,作为末尾的目标去重周期;
41.将位于末尾的目标去重周期之前,且属于待去重时间段的候选去重周期,也作为目标去重周期。
42.其中,请求时刻可以是去重请求的发起时刻或者响应时刻。确定请求时刻落在的候选去重周期,作为末尾的目标去重周期,并将去重服务的所有候选去重周期中位于末尾的目标去重周期之前,且去重周期对应的时间段属于待去重时间段内的候选去重周期也作为目标去重周期。
43.示例性的,在上述示例的基础上,去重请求对应的请求时刻为11月7号8点,则将去重服务中包括11月7号8点这一时刻的候选去重周期11月7号0点到24点,作为末尾的目标去重周期,将位于11月7号0点到24点之前,且属于11月5号0点到11月7号24点的候选去重周期也作为目标去重周期。
44.通过请求时刻为目标去重周期的末尾进行定位,进而根据末尾的目标去重周期和待去重时间段确定所有的目标去重周期,可以提高对目标去重周期确定的准确性和效率。
45.s130、将目标去重周期对应的去重过滤器,作为目标去重过滤器。
46.其中,去重过滤器用于对待去重内容进行查询操作,预先在去重过滤器中设置需要进行重复查询的内容,示例性的,去重过滤器包括布隆过滤器,在布隆过滤器中利用n个hash函数和对应的n个k位的一维数组,对于需要进行重复查询的内容,用n个hash函数对该内容进行hash之后,将获取到的哈希值作为对应在n个数组中的位置,并将该n个数组中对应哈希值的位设置为1。
47.具体的,在去重服务中,每个候选去重周期对应了一个去重过滤器,根据目标去重周期即可确定对应的目标去重过滤器。示例性的,若待去重时间段为3天,则设置布隆过滤器的去重周期为天单元,为每个去重请求确定与请求时刻对应的3天内的布隆过滤器为目标去重过滤器。
48.s140、根据目标去重过滤器对去重请求中的待去重数据进行处理,得到去重结果。
49.在去重服务中每个去重过滤器中均已对需要进行重复过滤的数据进行设置,因此在确定与去重请求对应的目标去重过滤器后,将去重请求中的待去重数据输入到目标去重过滤器中,由目标去重过滤器对待去重数据进行处理,判断目标去重过滤器中的历史处理数据中是否包括该待去重数据,若任一目标去重过滤器中的历史处理数据中包括该待去重数据,则确定去重结果为重复;若所有目标去重过滤器中的历史处理数据中均不包括该待去重数据,则确定去重结果为不重复。
50.示例性的,去重过滤器为布隆过滤器,响应于去重请求,将去重请求中的待去重数据输入到目标布隆过滤器中,分别得到的n个hash函数对应的哈希值,根据该哈希值在对应一维数组中查询对应哈希值位的值,若n个一维数组的对应哈希值位置的值均为1则说明该请求中的待去重数据在该目标布隆过滤器对应的去重周期内已经重复了。
51.示例性的,在确定待去重数据的去重结果为不重复,根据该待去重数据在末尾的目标去重过滤器中进行设置,以在后续去重查询中对该待去重数据可以进行重复确定。
52.若将所有需要重复查询的数据设置在一个去重过滤器中,则面对不同去重请求对应的不同待去重时间段,将难以确定包括对应内容的去重过滤器范围。
53.本实施例的方案,通过对去重过滤器对应的去重周期进行设置,实现以较小单位对去重过滤器进行切分,再根据待去重时间段确定对应的目标去重周期,根据对应的目标去重周期确定一一对应的去重过滤器,提高了对限定待去重时间段内重复数据的查询准确度。并且根据去重周期对去重过滤器所包括的重复内容所占空间进行限制,在提高查询效率的同时还减少了单个去重过滤器的大小,提高对整体去重服务存储大小的控制精准度。
54.图2是根据本公开实施例的另一种去重方法的示意图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。如图2所示,去重方法包括如下:
55.s210、响应于去重请求,确定去重时长。
56.其中,去重时长是指所需查询重复的时间段长度,例如对于去重请求中的待去重数据需要查询重复的时间段长度为3天,即查询3天内是否向该用户推荐过该待去重数据。
57.具体的,去重时长是预先设置在配置信息中,去重时长可以根据待去重数据对应的业务需求进行确定,并且在去重过程中可以通过对配置信息进行修改实现对去重时长的修改,在修改后,对于后续的去重请求就可以根据更新后去重时长确定待去重时间段,在修改过程中,不需要暂停整个的去重服务,只需要更新配置就可以完成对去重时长的更新。
58.示例性的,在配置信息中包括至少两种业务类型对应的去重时长,响应于去重请求,确定去重请求中的待去重数据的目标业务类型,根据目标业务类型从配置信息中确定对应的目标去重时长,作为待去重数据的去重时长,提高对待去重数据的去重精准度,并且提高了对去重时长的修改效率。
59.示例性的,根据去重时长可以调整去重服务中去重过滤器的去重周期长度,以便根据去重时长对应的待去重时间段可以准确定位目标去重周期。示例性的,当去重时长的单位为天时,则对应设置的去重周期也可以是以天为单位,或者以小时为单位;当去重时长的单位为小时,则对应设置的去重周期也需要适应性调整为以小时为单位,若继续以天为单位,则导致待去重时间段所包括的目标去重周期无法准确确定。去重周期的长度也设置
在配置信息中,若需要修改去重周期长度,则直接在配置信息中进行修改,在当前去重周期结束后,在创建新的去重周期对应的去重过滤器时,从配置信息中确定去重周期,根据配置信息中的去重周期进行创建后续去重过滤器。实现对去重过滤器的去重周期的高效修改,并且不需要暂停整体的去重服务。
60.s220、将去重请求对应的请求时刻前推去重时长的对应时刻确定为待去重起始时刻,并将请求时刻确定为待去重结束时刻。
61.具体的,根据请求时刻与去重时长的差值确定待去重起始时刻,将请求时刻作为待去重结束时刻。示例性的,请求时刻为11月7号8点,去重时长为3天,则待去重起始时刻为11月4号8点,待去重结束时刻为11月7号8点。
62.s230、将待去重起始时刻和待去重结束时刻之间的时间段作为去重请求所属的待去重时间段。。
63.以请求时刻作为待去重结束时刻,根据去重时长确定待去重起始时刻,根据待去重结束时刻和待去重起始时刻确定去重请求所属的待去重时间段。
64.s240、确定待去重时间段包括的至少一个目标去重周期。
65.s250、将目标去重周期对应的去重过滤器,作为目标去重过滤器。
66.s260、根据目标去重过滤器对去重请求中的待去重数据进行处理,得到去重结果。
67.在本实施例的另一个可选实现方式中,s260,包括:
68.根据目标去重过滤器对待去重数据进行同步处理;其中,所述去重过滤器为布隆过滤器;
69.在确定过滤器中目标执行函数未对待去重数据进行设置过时,则确定目标执行函数所属的目标去重过滤器的去重结果为待去重数据不重复。
70.由于本实施例中去重服务中的去重过滤器的去重周期长度较短,因此与去重时长对应的目标去重过滤器包括至少两个,导致在查重操作中需要查询更多去重过滤器,因此为了减少查询耗时,提高查询效率,本实施例采用并发访问至少两个目标去重过滤器。
71.并且,基于布隆过滤器的特性,当确定任一目标去重过滤器中的任一哈希函数对待去重数据进行处理得到的哈希值,该哈希值对应的一维数组值为0时,则表示该哈希函数未对待去重数据进行设置过,可以确定在该哈希函数对应的布隆过滤器的去重周期内未对该待去重数据进行处理过,可以确定该布隆过滤器的去重结果为待去重数据不重复,同时若该布隆过滤器中其他哈希函数未执行完成,则可以直接结束查询,以提高查询效率。示例性的,在上述示例的基础上,同时对5号、6号和7号对应的目标去重过滤器进行去重查询,在各目标去重过滤器中分别包括3个哈希函数,若6号中第二个哈希函数对应查询位为0,则可以确定该待去重数据在6号中并未处理过,因此确定6号的去重结果为不重复,停止6号对应的目标去重过滤器中未执行完成的哈希函数的处理过程。
72.在本实施例中,通过并发访问所有目标去重过滤器减少了去重查询耗时,提高了去重查询效率;并且基于布隆过滤器的特性,设置查询提前结束机制,进一步提高了去重查询效率。
73.在本实施例的另一个可选实现方式中,方法还包括:
74.确定候选去重周期对应的去重过滤器的存活时长;
75.确定存活时长大于过期时长的去重过滤器为过期去重过滤器;其中,过期时长根
据设置的配置信息确定;
76.对过期去重过滤器进行删除。
77.其中,存活时长是指去重过滤器的创建时间到当前时间的时长,对去重过滤器的存在时间进行确定。过期时长是指设置在配置信息中,对长时间存在的去重过滤器进行过期处理的参数。
78.虽然本实施例通过对单个去重过滤器的去重周期长度进行了切分,减少了单个去重过滤器的存储空间,但是在流量巨大的情况下,去重服务中所有候选去重过滤器依然会占用很大存储,因此本实施例在配置信息中设置过期时长,将存活时长大于过期时长的去重过滤器认为是过期去重过滤器,该过期去重过滤器中的数据已经不具备时效性了,需要对其进行删除操作,从而有效维护去重服务中去重过滤器的存储占用大小。并且基于过期时长对过期去重过滤器进行删除,依赖于对去重过滤器的去重周期进行设置,本实施例中将大的去重过滤器切分为多个去重周期对应的小去重过滤器,给存储清理提供了基础。
79.可选的,若根据统计信息确定当前去重服务中去重过滤器的存储空间超过预设阈值时,通过对配置信息中的过期时长进行调整,例如将过期时长进行缩小,以灵活控制去重服务所占存储大小。
80.本实施例通过在配置信息中设置过期时长可以实现有效控制去重服务中去重过滤器的所占存储空间大小,并且可以对长时间存在的去重过滤器进行清理。
81.本实施例的方案,通过在配置信息中设置去重时长可以实现对去重时长的修改效率,并且进一步提高了对待去重数据的去重精准度。
82.图3是根据本公开实施例的又一种去重方法的示意图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。如图3所示,去重方法包括如下:
83.s310、根据去重请求、目标去重过滤器的数量以及目标去重过滤器中的执行函数数量,确定根据目标去重过滤器对待去重数据进行处理时的放大处理流量。
84.为了提高单个去重过滤器的去重精度,在单个去重过滤器中也设置了多个执行函数对待去重数据进行处理。例如,布隆过滤器采用多个哈希函数映射布隆值,来提升布隆过滤器精度,常见布隆过滤器哈希函数个数通常在5~7个左右。而由于本实施例中对去重周期的设置,导致目标去重过滤器也会包括多个,因此在对待去重数据的查询过程会将查询所需流量放大多倍,在高并发场景下,若并发流量过大会有击溃后端服务的可能性,影响去重服务稳定性。
85.首先需要根据去重请求本身所需的流量、目标去重过滤器的数量以及目标去重过滤器中的执行函数数量,确定根据目标去重过滤器对待去重数据进行处理时的放大处理流量,示例性的,去重请求所需流量为q,目标去重过滤器的数量为n,目标去重过滤器中的执行函数数量为k,则放大处理流量为a=q*n*k,放大处理流量表示了去重服务对该去重请求进行处理时所需的总流量。
86.s320、根据放大处理流量、去重服务的当前累积流量和流量阈值判断去重请求是否影响去重服务当前稳定性。
87.若在去重服务的当前累积流量的基础上加上去重请求的放大处理流量大于预先设置的流量阈值,则表示对该去重请求进行处理,会影响去重服务的当前稳定性;若小于或
等于,则表示对该去重请求进行处理,不会影响去重服务的当前稳定性。其中,去重服务的当前累积流量根据去重服务当前正在进行处理的去重请求数量进行确定。
88.在本实施例的另一个可选实现方式中,s320,包括:
89.若放大处理流量和当前累积流量的流量和大于或等于流量阈值,则确定去重请求影响去重服务当前稳定性;其中,当前累积流量是指按照配置信息中的统计周期统计的去重服务在当前统计周期内的历史累积流量。
90.其中,统计周期是指在统计去重服务的当前累积流量时需要统计的时间长度。
91.具体的,按照统计周期间隔确定在每个周期内去重服务所处理去重请求的累积流量,示例性的,统计周期为1秒,则当前累积流量是指在去重请求所在的当前1秒内,去重服务已经处理的去重请求的累积流量。在本实施例中,认为在1秒内所接收到的去重请求未处理完成,属于正在处理进行中的流量,而对于1秒钱的请求可能已经处理完成,若在计算累积流量时对之前的流量都一起进行处理,则会导致累积流量中会包括已经完成的流量。
92.若放大处理流量和当前累积流量的流量和大于或等于流量阈值,则确定去重请求影响去重服务当前稳定性。若当前统计周期结束,则对历史累积流量进行清零,并根据下一统计周期的去重请求重新计算累积流量。
93.本实施例中的方案,通过按照统计周期统计当前累积流量,并确定在当前统计周期内在累积流量的基础上对放大处理流量进行处理会不会影响去重服务当前稳定性,避免了在计算累积流量时对已完成请求对应的流量的计算,提高对当前稳定性判断的准确性。
94.s330、根据判断结果对去重请求进行过滤。
95.若确定该去重请求影响去重服务当前稳定性,则对该去重请求进行服务降级,例如拒绝该请求,并返回失败。若确定该去重请求不影响去重服务的当前稳定性,则对该去重请求进行处理,并返回成功。
96.示例性的,采用添加全局限流器来解决流量放大的问题,当放大处理流量和去重服务的当前累积流量的流量和超过流量阈值,则对该去重请求进行自动服务降级,从而保证去重服务整体的稳定性。例如全局限流器通过redis的incrby命令实现,该命令是执行加一操作,通过设置一个流量阈值,例如2000,则在当前统计周期内,在当前累积流量的基础上加上放大处理流量达到2000时候则返回失败,否则返回成功。设置统计周期为一秒,则下一秒就会清零,重新计数,从而实现全局限流目的。如下所示为全局限流器的实现载体,即lua脚本:
[0097][0098][0099]
如图4所示为又一种去重方法的示意图,具体包括:s410:响应于去重请求,计算该去重请求的放大处理流量;s420:通过全局限流器确定的在当前统计周期内的当前累积流量;s430:确定放大处理流量和当前累积流量之和是否超过流量阈值,若超过,则执行s440:服务降级,并返回失败,否则执行s450:确定去重请求对应的目标去重过滤器,s460:得到目标去重过滤器对去重请求中的待去重数据进行处理得到的去重结果。
[0100]
本实施例的方案,通过对去重请求的放大处理流量和当前累积流量的流量和进行确定,对该去重请求是否会对去重服务的当前稳定性产生影响进行判断,提高了去重服务的稳定性,规避了本实施例对去重请求进行流量放大产生的不利影响,避免产生后端服务崩溃的现象。
[0101]
图5是根据本公开实施例的又一种去重方法的示意图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。如图5所示,去重方法包括如下:
[0102]
s510、响应于对目标数据内容的排查请求,根据排查请求对应的排查时刻确定排查去重过滤器。
[0103]
其中,排查请求是指对目标数据内容的添加设置请求。排查请求是指排查请求的发起时刻或者响应时刻。
[0104]
具体的,确定去重服务中各候选去重过滤器的候选去重周期中包括所述排查时刻的候选去重周期为排查去重周期,并确定排查去重周期对应的去重过滤器为排查去重过滤器。
[0105]
在本实施例的另一个可选实现方式中,s510,包括:
[0106]
确定候选去重周期中的末尾去重周期的去重结束时刻;
[0107]
若排查时刻大于或等于去重结束时刻,则重新创建新的候选去重周期,并将新的候选去重周期对应的去重过滤器作为排查去重过滤器。
[0108]
其中,末尾去重周期是指在去重服务包括的所有候选去重周期中排在最后的去重周期,并确定该末尾去重周期的去重结束时刻,是该末尾去重周期所支持查询的最后时刻,若排查时刻大于或等于该去重结束时刻,表示排查时刻超出了去重服务中所有去重过滤器的去重周期范围,需要重新创建新的候选去重周期。并且由于对目标数据内容的添加也需要一定时间,因此当排查时刻等于去重结束时刻时,表示末尾去重周期的对应的去重过滤器来不及对该目标数据内容进行添加,为了提高后续对目标数据内容的去重准确性,需要在新创建的后续候选去重周期对应的去重过滤器中添加该目标数据内容。
[0109]
通过对排查时刻和去重结束时刻的比较,提高了对目标数据内容的添加准确性,进而提高后续对重复目标数据内容的去重精准度。
[0110]
s520、在排查去重过滤器中添加目标数据内容,用于排查待去重数据中是否包括目标数据内容。
[0111]
具体的,该排查去重过滤器中的执行函数对该目标数据内容进行添加处理,实现在后续去重请求中对是否包括该目标数据内容进行查询。
[0112]
示例性的,排查去重过滤器为布隆过滤器时,将排查请求中的目标数据内容输入到排查去重过滤器中,分别得到排查去重过滤器中的n个hash函数对应的哈希值,根据该哈希值在对应一维数组中查询对应哈希值位的值设置为1,则说明该请求中的目标数据内容在该排查去重过滤器中已经添加完成了。
[0113]
示例性的,由于在排查请求的响应过程中,也是对去重服务进行处理,去重方法还包括:
[0114]
根据所述排查请求、以及所述排查去重过滤器中的执行函数数量,确定根据所述排查去重过滤器对所述目标数据内容进行处理时的排查放大处理流量;
[0115]
根据所述排查放大处理流量、去重服务的当前累积流量和流量阈值判断所述去重请求是否影响去重服务当前稳定性;
[0116]
根据判断结果对所述排查请求进行过滤。
[0117]
其中,去重服务的当前累积流量中包括当前去重累积流量和当前排查累积流量。
[0118]
如图6所示为又一种去重方法的示意图,具体包括:s610:响应于排查请求,计算该排查请求的排查放大处理流量,s620:通过全局限流器确定的在当前统计周期内的当前累积流量,s630:确定排查放大处理流量和当前累积流量之和是否超过流量阈值,若超过,则执行s640:服务降级,并返回添加失败,否则执行s650:确定排查请求对应的排查去重过滤器,s660:在排查去重过滤器对排查请求中的目标数据内容进行添加。
[0119]
如图7所示为一种去重服务的整体架构图,去重服务可以同时对去重请求模块710中去重请求的和排查请求模块720中的排查请求进行响应,通过全局限流器730后,分别对去重请求和排查请求对应的放大处理流量是否会影响去重服务当前稳定性进行判断,若不影响,则根据请求时刻从候选去重过滤器模块740中确定目标去重过滤器,根据排查时刻从候选去重过滤器模块740中确定排查去重过滤器。示例性的,请求时刻为n,去重时长为3n,则确定timen、timen-1和timen-2为目标去重过滤器,timen为排查去重过滤器,采用timen、timen-1和timen-2对应的去重过滤器对去重请求中的待去重数据进行并发处理,并在timen对应的去重过滤器中添加排查请求中的目标数据内容。本实施例中实现了低存储、高并发和低延时的去重服务,且去重服务具备高稳定性。
[0120]
在去重过滤器为布隆过滤器时,本实施例保留了布隆过滤器高并发、低延时、存储小的优点,同时解决流量放大、去重时长修改等问题,具备了高稳定性的优点。
[0121]
本实施例的方案,通过将目标数据内容在排查去重过滤器中进行添加设置,实现了对确定后续的去重请求中的待去重数据是否包括该目标数据内容的准确查重排查,提高去重精准度。
[0122]
图8是根据本公开实施例的一种去重装置的结构示意图,该装置可以执行本公开任一实施例中涉及到的去重方法;参考图8,去重装置800,包括:待去重时间段确定模块810、目标去重周期确定模块820、目标去重过滤器确定模块830以及去重结果确定模块840。
[0123]
待去重时间段确定模块810,用于响应于去重请求,确定所述去重请求所属的待去重时间段;
[0124]
目标去重周期确定模块820,用于确定所述待去重时间段包括的至少一个目标去重周期;
[0125]
目标去重过滤器确定模块830,用于将所述目标去重周期对应的去重过滤器,作为目标去重过滤器;
[0126]
去重结果确定模块840,用于根据所述目标去重过滤器对所述去重请求中的待去重数据进行处理,得到去重结果。
[0127]
本实施例的方案,通过对去重过滤器对应的去重周期进行设置,实现以较小单位对去重过滤器进行切分,再根据待去重时间段确定对应的目标去重周期,根据对应的目标去重周期确定一一对应的去重过滤器,提高了对限定待去重时间段内重复数据的查询准确度。并且根据去重周期对去重过滤器所包括的重复内容所占空间进行限制,在提高查询效率的同时还减少了单个去重过滤器的大小,提高对整体去重服务存储大小的控制效率。
[0128]
在本实施例的一个可选实现方式中,目标去重周期确定模块,具体用于:
[0129]
确定所述去重请求对应的请求时刻,并将所述请求时刻所属的候选去重周期,作为末尾的目标去重周期;
[0130]
将位于末尾的目标去重周期之前,且属于所述待去重时间段的候选去重周期,也作为所述目标去重周期。
[0131]
在本实施例的一个可选实现方式中,待去重时间段确定模块,具体用于:
[0132]
确定去重时长;其中,所述去重时长根据设置的配置信息确定;
[0133]
将所述去重请求对应的请求时刻前推所述去重时长的对应时刻确定为待去重起始时刻,并将所述请求时刻确定为待去重结束时刻;
[0134]
将所述待去重起始时刻和所述待去重结束时刻之间的时间段作为所述去重请求所属的待去重时间段。
[0135]
在本实施例的一个可选实现方式中,去重结果确定模块,具体用于:
[0136]
根据所述目标去重过滤器对所述待去重数据进行同步处理;其中,所述去重过滤器为布隆过滤器;
[0137]
在确定过滤器中目标执行函数未对所述待去重数据进行设置过时,则确定所述目标执行函数所属的目标去重过滤器的去重结果为所述待去重数据不重复。
[0138]
在本实施例的一个可选实现方式中,所述装置还包括排查请求响应模块,包括:
[0139]
排查去重过滤器确定单元,用于响应于对目标数据内容的排查请求,根据所述排查请求对应的排查时刻确定排查去重过滤器;
[0140]
目标数据内容添加单元,用于在所述排查去重过滤器中添加所述目标数据内容,用于排查待去重数据中是否包括所述目标数据内容。
[0141]
在本实施例的一个可选实现方式中,排查去重过滤器确定单元,具体用于:
[0142]
确定所述候选去重周期中的末尾去重周期的去重结束时刻;
[0143]
若所述排查时刻大于或等于所述去重结束时刻,则重新创建新的候选去重周期,并将所述新的候选去重周期对应的去重过滤器作为所述排查去重过滤器。
[0144]
在本实施例的一个可选实现方式中,所述装置还包括去重过滤器删除模块,包括:
[0145]
过滤器存活时长确定单元,用于确定候选去重周期对应的去重过滤器的存活时长;
[0146]
过期去重过滤器确定单元,用于确定所述存活时长大于过期时长的去重过滤器为过期去重过滤器;其中,所述过期时长根据设置的配置信息确定;
[0147]
过期去重过滤器删除单元,用于对所述过期去重过滤器进行删除。
[0148]
在本实施例的一个可选实现方式中,所述装置还包括去重请求过滤模块,用于:
[0149]
放大处理流量确定单元,用于根据所述去重请求、所述目标去重过滤器的数量以及所述目标去重过滤器中的执行函数数量,确定根据所述目标去重过滤器对所述待去重数据进行处理时的放大处理流量;
[0150]
服务稳定性判断单元,用于根据所述放大处理流量、去重服务的当前累积流量和流量阈值判断所述去重请求是否影响去重服务当前稳定性;
[0151]
去重请求过滤单元,用于根据判断结果对所述去重请求进行过滤。
[0152]
在本实施例的一个可选实现方式中,服务稳定性判断单元,具体用于:
[0153]
若所述放大处理流量和所述当前累积流量的流量和大于或等于所述流量阈值,则确定所述去重请求影响去重服务当前稳定性;其中,所述当前累积流量是指按照配置信息中的统计周期统计的所述去重服务在当前统计周期内的历史累积流量。
[0154]
上述去重装置可执行本公开任意实施例所提供的去重方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的去重方法。
[0155]
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0156]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种
计算机程序产品。
[0157]
图9示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0158]
如图9所示,设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0159]
设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0160]
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如去重方法。例如,在一些实施例中,去重方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram 503并由计算单元501执行时,可以执行上文描述的去重方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法去重。
[0161]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0162]
用于实施本公开的方法的程序代码可以根据一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0163]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0164]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0165]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0166]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0167]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0168]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1