CN109302300B - 数据分配和处理方法、***及计算机可读记录介质 - Google Patents
数据分配和处理方法、***及计算机可读记录介质 Download PDFInfo
- Publication number
- CN109302300B CN109302300B CN201710612889.2A CN201710612889A CN109302300B CN 109302300 B CN109302300 B CN 109302300B CN 201710612889 A CN201710612889 A CN 201710612889A CN 109302300 B CN109302300 B CN 109302300B
- Authority
- CN
- China
- Prior art keywords
- event
- identifier
- data
- count value
- event identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L41/064—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了数据分配方法及装置、数据处理方法及服务器,其中,数据处理方法应用于与数据分配装置相连的任一服务器中,数据处理方法包括:接收数据分配装置发送的事件标识,并获取事件标识对应的时长参数;统计事件标识对应的事件在所述时长参数内的总计数值;服务器中保存有多个事件标识及其对应的计数值;判断总计数值是否超过预设处理阈值,如果超过,则忽略事件所对应的、不可重复处理的部分操作;如果不超过,则执行事件所对应的、不可重复处理的部分操作,并按照事件标识的接收时刻,累加事件的计数值。采用本申请实施例,可以避免在事件数据产生重复的情况下,还会执行用户操作产生的错误,提升用户体验。
Description
技术领域
本申请涉及互联网数据处理技术领域,特别涉及一种数据分配方法及装置,以及,一种数据处理方法及服务器。
背景技术
在电子商务飞速发展的现在,越来越多的用户采用互联网进行各种在线交易,或者传递信息等。而对于用户在互联网上经由终端产生的操作,会发送至相应的服务器执行。例如,用户登录一个邮箱的操作,会将用户名和登录密码经由终端发送至邮箱服务器,邮箱服务器会产生该操作对应的一个事件以及事件数据,事件数据中包括了与用户操作相关的数据。再例如,用户在一个网上商城对某产品的下单操作,用户也会经由终端将自己的用户名、收件地址或者下单的产品等信息发送至网上商城的服务器,由服务器生成相应的一个下单事件,该下单事件的事件数据就包括了用户名、地址和产品等的信息。
但是,在实际应用中,由于网络延迟或者设备故障或者用户重复提交等原因,可能会造成同一个下单操作被重复发送至网上商城的服务器的现象,在这种情况下,会造成重复发送。
如何对这种重复发送的事件数据进行处理,称为亟待解决的技术问题。
发明内容
发明人在研究过程中发现,现有技术无法对重复发送的事件数据准确判断,根据本申请一个方面,如果能在服务器接收到用户操作后,将生成的事件数据按照各个事件数据对应的事件标识进行统计,如果某事件标识对应的事件在短时间内被重复提交了多次,则不再响应该事件对应的用户操作,就可以准确判断一个事件数据对应的事件是否是重复事件,进而可以确定对该事件对应的用户操作是否需要响应。
基于此,本申请提供了一种数据分配方法以及一种数据处理方法,用以采用为各个事件数据生成相对于的事件标识,并将事件数据按照处理事件是否重复的服务器的个数,来分别分配至各个服务器中,而各个服务器则统计自己存储的某个事件标识在一段事件内的次数是否超过预设处理阈值,超过的话就忽略该事件所对应的那些不可重复处理的操作,不仅保证了用户操作产生的事件数据不会被重复处理,例如不会重复执行扣款操作或者扣减积分操作等,也提升了用户体验。
本申请还提供了一种数据分配装置和服务器,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种数据处理方法,所述数据处理方法包括:
接收事件标识,并获取所述事件标识对应的时长参数;
统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断所述总计数值是否超过预设处理阈值,如果超过,则忽略所述事件所对应的、不可重复处理的部分操作;
如果不超过,则执行所述事件所对应的、不可重复处理的部分操作,并按照所述事件标识的接收时刻,累加所述事件的计数值。
其中,与多个时间片分别一一对应的多个存储空间,各时间片的间隔时长相同,所述存储空间包括时间戳和分段计数值,所述时间戳用于表示从该时间戳开始的间隔时长内接收到的事件标识对应的事件,需要累加至该存储空间中;所述按照所述事件标识的接收时刻,累加所述事件的计数值,包括:
计算所述事件标识的接收时刻除以所述间隔时长的商,作为待存储时间戳,以及,计算所述接收时刻与所述存储空间的个数的余数,作为待存储空间索引;
判断所述待存储空间索引对应的存储空间包括的原始时间戳,与所述待存储时间戳是否相同,如果是,则累加所述原始时间戳对应的分段计数值;
如果否,则清空所述原始时间戳对应的存储空间,将所述原始时间戳替换为所述待存储时间戳,并累加所述待存储时间戳对应的、该事件的分段计数值。
其中,所述统计所述事件标识对应的事件在所述时长参数内的总计数值,包括:
获取所述事件标识的接收时刻;
计算所述接收时刻与所述间隔时长的商,以及该商与各存储空间包括的时间戳之间的差值,并将各差值分别作为各存储空间的查询参数;
判断所述各存储空间的查询参数是否小于所述时长参数,如果是,则获取该存储空间包括的分段计数值并进行累加,得到所述事件标识的总计数值。
本申请实施例还提供了一种数据分配方法,该方法包括:
接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
其中,所述依据预先设置的标识生成规则,生成所述事件数据对应的事件标识,包括:
获取所述所述事件数据包括的用户标识、操作的类型标识和/或操作对象标识;
组合所述用户标识、操作的类型标识和/或操作对象标识,得到所述事件标识。
其中,所述依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中,包括:
对于每个事件数据,将对应的事件标识进行哈希运算,得到事件标识的哈希值;
将所述哈希值对所述服务器的个数进行取模运算,得到索引值;
将所述事件标识发送至所述索引值标识的服务器中。
本申请实施例还提供了一种服务器,所述服务器包括:
事件标识接收单元,用于接收事件标识,并获取所述事件标识对应的时长参数;
统计单元,用于统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断单元,用于判断所述总计数值是否超过预设处理阈值;
第一处理单元,用于在所述判断单元的结果为超过的情况下,忽略所述事件所对应的、不可重复处理的部分操作;
第二处理单元,用于在所述判断单元的结果为不超过的情况下,执行所述事件所对应的、不可重复处理的部分操作;
累加单元,用于在触发所述第二处理单元后,按照所述事件标识的接收时刻,累加所述事件的计数值。
其中,与多个时间片分别一一对应的多个存储空间,各时间片的间隔时长相同,所述存储空间包括时间戳和分段计数值,所述时间戳用于表示从该时间戳开始的间隔时长内接收到的事件标识对应的事件,需要累加至该存储空间中;所述累加单元包括:
第二计算子单元,用于计算所述事件标识的接收时刻除以所述间隔时长的商,作为待存储时间戳,以及,计算所述接收时刻与所述存储空间的个数的余数,作为待存储空间索引;
第二判断子单元,用于判断所述待存储空间索引对应的存储空间包括的原始时间戳,与所述待存储时间戳是否相同;
第二累加子单元,用于在所述判断子单元的结果为是的情况下,累加所述原始时间戳对应的分段计数值;
清空子单元,用于在所述第二判断子单元为否的情况下,清空所述原始时间戳对应的存储空间,将所述原始时间戳替换为所述待存储时间戳;
第三累加子单元,用于累加所述待存储时间戳对应的、该事件的分段计数值。
其中,所述统计单元包括:
第二获取子单元,用于获取所述事件标识的接收时刻;
第一计算子单元,用于计算所述接收时刻与所述间隔时长的商,以及该商与各存储空间包括的时间戳之间的差值,并将各差值分别作为各存储空间的查询参数;
第一判断子单元,用于判断所述各存储空间的查询参数是否小于所述时长参数;
第一累加子单元,用于在所述判断子单元的结果为是的情况下,获取该存储空间包括的分段计数值并进行累加,得到所述事件标识的总计数值。
本申请实施例还提供了一种数据分配装置,该数据分配装置包括:
事件数据接收单元,用于接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
生成单元,用于依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
分配单元,用于依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
其中,所述生成单元包括:
第一获取子单元,用于获取所述所述事件数据包括的用户标识、操作的类型标识和/或操作对象标识;
组合子单元,用于组合所述用户标识、操作的类型标识和/或操作对象标识,得到所述事件标识。
其中,所述分配单元包括:
哈希运算子单元,用于对于每个事件数据,将对应的事件标识进行哈希运算,得到事件标识的哈希值;
取模运算子单元,用于将所述哈希值对所述服务器的个数进行取模运算,得到索引值;
发送子单元,用于将所述事件标识发送至所述索引值标识的服务器中。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据分配的程序,该处理包括以下步骤:
接收步骤,其接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
生成步骤,其依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
分配步骤,其依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
本申请实施例还提供了另一种计算机可读介质,该计算机可读介质存储有使计算机执行用于,该处理包括以下步骤:
接收步骤,其接收事件标识,并获取所述事件标识对应的时长参数;
统计步骤,其统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断步骤,其判断所述总计数值是否超过预设处理阈值;
第一处理步骤,用于在判断步骤得到超过的结果的情况下,忽略所述事件所对应的、不可重复处理的部分操作;
第二处理步骤,用于在判断步骤得到不超过的结果的情况下,执行所述事件所对应的、不可重复处理的部分操作;
累加步骤,用于在第二处理步骤之后,按照所述事件标识的接收时刻,累加所述事件的计数值。
本申请实施例还提供了一种计算机设备,该计算机设备包括:处理器、存储器、网络接口和总线***;
所述总线***,用于将所述计算机设备的各个硬件组件耦合在一起;
所述网络接口,用于实现所述计算机设备与至少一个其它计算机设备之间的通信连接;
所述存储器,用于存储程序指令和/或数据;
所述处理器,用于读取所述存储器中存储的指令和/或数据,执行以下操作:
接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
本申请实施例还提供了另一种计算机设备,该计算机设备包括:处理器、存储器、网络接口和总线***;
所述总线***,用于将所述计算机设备的各个硬件组件耦合在一起;
所述网络接口,用于实现所述计算机设备与至少一个其它计算机设备之间的通信连接;
所述存储器,用于存储程序指令和/或数据;
所述处理器,用于读取所述存储器中存储的指令和/或数据,执行以下操作:
接收事件标识,并获取所述事件标识对应的时长参数;
统计所述事件标识对应的事件在所述时长参数内的总计数值;所述服务器中保存有多个事件标识及其对应的计数值;
判断所述总计数值是否超过预设处理阈值,如果超过,则忽略所述事件所对应的、不可重复处理的部分操作;
如果不超过,则执行所述事件所对应的、不可重复处理的部分操作,并按照所述事件标识的接收时刻,累加所述事件的计数值。
本申请实施例还提供了一种用户界面交互设备,包括:
第一交互模块,用于在接收第一触发指令后,向处理器转发所述第一触发指令,以便处理器接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
第二交互模块,用于在接收第二触发指令后,并向处理器转发所述第一触发指令,以便处理器依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
第三交互模块,用于在接收第三触发指令后,并向处理器转发所述第三触发指令,以便处理器依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
本申请实施例还提供了另一种用户界面交互设备,包括:
第四交互模块,用于在接收第四触发指令后,向处理器转发所述第四触发指令,以便处理器接收事件标识,并获取所述事件标识对应的时长参数;
第五交互模块,用于接收第五触发指令,并向处理器转发所述第五触发指令,以便处理器统计所述事件标识对应的事件在所述时长参数内的总计数值;所述服务器中保存有多个事件标识及其对应的计数值;
第六交互模块,用于接收第六触发指令,并向处理器转发所述第六触发指令,以便处理器判断所述总计数值是否超过预设处理阈值,如果超过,则忽略所述事件所对应的、不可重复处理的部分操作;如果不超过,则执行所述事件所对应的、不可重复处理的部分操作,并按照所述事件标识的接收时刻,累加所述事件的计数值。
本申请实施例还提供了一种数据处理方法,包括:
第一计算设备生成事件标识,其中,所述事件标识至少包括或基于如下数据之一:用户ID、时间戳、操作码和操作对象ID;
第一计算设备向第二计算设备发送所述事件标识,其中,所述第二计算设备基于所述事件标识进行去重操作。
与现有技术相比,本申请包括以下优点:
在本申请实施例中,数据分配装置可以根据预设的标识生成规则生成各事件数据对应的事件标识,并且在将各事件标识分配至服务器时,依据服务器的个数进行分配,保证同一个事件标识会被分配至同一个服务器上进行处理,使得服务器统计事件标识的计数值时不会出现错误或者疏漏,并且,因为各个事件标识分配至各个服务器是随机的,因此,一定程度上还避免了事件标识在各个服务器之间的数据倾斜问题。
进一步的,在各服务器接收到事件标识后,可以将一段时间内存储的该事件标识对应的分段计数值进行累加,从而得到该事件标识对应的总计数量,再将该总计数量与预设处理阈值进行判断,从而在超过预设处理阈值的时候,就不再响应该事件标识的事件所对应的用户操作,也就避免了在事件数据产生重复的情况下,还会执行用户操作产生的错误,同时,由于避免对用户的重复扣款或者扣减积分等相关操作,也提升了用户体验。
再进一步的,由于服务器内部还会划分出多个存储空间,每一个存储空间都存储某一段事件内接收到的事件标识的分段计数值,从而可以快速地查找到各存储空间存储的分段计数值进行累加,得到事件的总数量,保证了数据处理速度以及准确度。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请在实际应用中的一个应用场景的示例性示意图;
图2是本申请的数据分配方法实施例的示例性流程图;
图3是本申请的数据处理方法实施例的示例性流程图;
图4是本申请的数据分配装置实施例的示例性结构框图;
图5是本申请的数据处理装置实施例的示例性结构框图;
图6是本申请的一种计算机设备的示例性结构框图;
图7是本申请的另一种计算机设备的示例性结构框图;
图8a~图8b是本申请的一种用户界面交互设备的界面示意图;
图9a~图9b是本申请的另一种用户界面交互设备的界面示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1所示,是本申请实施例在实际应用中的一个示例性场景示意图。其中,用户在前台***101产生了操作,例如,下单操作,登录操作,或者,对产品的编辑操作等等,都称为一个事件。事件数据即是该操作相关的数据内容,例如,下单的用户名,订单号,登录密码,等等。前台***101响应于用户的操作产生的事件,可以将各事件数据发送至数据分配装置102,由数据分配装置102对各个事件数据进行分配,并将各事件的事件标识发送至与数据分配装置102相连的各服务器中。在图1中,服务器的个数可以设置为N个,N为大于1的整数。在服务器103中,如图3所示的实施例所示,服务器103可以对分配给自己的事件标识进行统计,判断事件标识对应的事件的总计数值(即数量)是否不符合阈值,并根据判断结果来确定是执行还是忽略与该事件相对应的、不可重复操作的那部分操作,从而实现各个事件的去重处理,保证同一个事件不会重复执行相对应的、对用户造成损失的某些操作,例如,扣款或者扣除积分等操作。
下面结合图1所示的应用场景,对本申请的数据分配方法和数据处理方法进行详细介绍。参考图2,示出了本申请一种数据分配方法实施例的流程图,本实施例可应用于图1所示的数据分配装置上,本实施例可以以包括以下步骤:
步骤201:接收事件数据,所述事件数据可以包括:用户在前台***的操作的相关数据。
用户在前台***产生操作之后,前台***将该操作对应的事件数据发送给数据分配装置。其中,事件数据可以包括用户在前台***操作的相关数据。例如,用户在终端上浏览产品详情之后,通过终端向前台***提交了产品A的下单操作,则前台***针对该下单操作生成一个下单事件,下单事件的事件数据中可以包括:用户名、订单编号、下单对象标识和收件地址等等,前台***再将下单事件的事件数据发送至数据分配装置。
步骤202:依据预先设置的标识生成规则,生成所述事件数据对应的事件标识。
数据分配装置接收到事件数据之后,可以依据预先设置好的标识生成规则,来为各个事件标识生成与各事件数据对应的事件标识。具体的,数据分配装置可以按照预先设置好的标识生成规则,来生成各事件数据对应的事件标识,例如,本领域技术人员预先设置了标识生成规则为:各事件数据按照各不相同的原则生成唯一对应的事件标识,可以将时间、用户名、订单编号等内容进行组合,从而为各事件数据生成唯一对应的事件标识。
在一种可能的实施方式中,步骤202具体可以先获取事件数据中包括的用户标识(可以是用户名)、操作的类型标识和/或操作对象标识,再组合用户标识、操作的类型标识和/或操作对象标识等,得到各事件数据对应的事件标识。其中,操作的类型标识用于表示事件数据对应的事件的操作类型,例如,下单,登录,修改,或者删除等操作类型。操作对象标识用于唯一表示事件数据对应的事件的操作对象,例如,商品156789,即唯一对应156789所表示的商品。
具体的,用户标识、操作的类型标识和操作对象标识进行组合后得到的事件标识可以形如:事件标识=用户ID_操作的类型标识_操作对象标识 ID。例如,12345_扣分_扣分类型,或者,12345_下单_商品1234,等等。其中,用户ID“12345”用于唯一标识一个用户,操作的类型标识“扣分”或者“下单”用于表示用户操作的类型是什么,操作对象标识“扣分类型”或者“商品1234”用于唯一标识一个用户操作所针对的操作对象。根据本申请一个实施例,进一步的,“扣分”对应数字代码001,“扣分类型”对应数字代码7,则事件标识可以为12345_001_7。
当然,前述的具体数据仅仅是为了本领域技术人员理解本申请方便所示意的示例性数据,不应将其理解为本申请实施例的限定。
步骤203:依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
在数据分配装置为每个事件数据对应生成各个事件标识后,可以为各个事件分配对应的服务器,并将各个事件对应的事件标识发送至为其分配的那个服务器。具体的,数据分配装置可以按照如下所示的步骤A1~步骤A3来分配各事件标识:
步骤A1:对于每个事件数据,将对应的事件标识进行哈希运算,得到事件标识的哈希值。
首先,对于步骤202中得到的事件标识,分别对事件标识进行哈希运算,例如,可以采用CRC32、MD5等哈希算法,来对各个事件标识进行哈希运算,得到各事件标识的哈希值。
步骤A2:将所述哈希值对所述服务器的个数进行取模运算,得到索引值。
为了保证各个服务器之间不会产生数据倾斜的问题,并且,同一个事件标识会分配至同一个服务器中,在本步骤中对各事件标识的哈希值对服务器的个数进行取模运算,得到各事件标识对应的、服务器的索引值。例如,假设服务器有三台:服务器1、服务器2和服务器3,则事件标识分别对3进行取模运算可能会得到的索引值为0、1或2,则将得到索引值为0的事件标识分配至服务器1,将得到索引值为1的事件标识分配至服务器2,并将得到索引值为2的事件标识分配至服务器3。
步骤A3:将所述事件标识发送至所述索引值标识的服务器中。
接着,数据分配装置再将事件标识分别发送至与索引值对应的那个服务器中,例如,将得到索引值为0的所有的事件标识都发送至服务器1,将得到索引值为1的所有的事件标识都发送至服务器2,以及,将得到索引值为2的所有的事件标识都发送至服务器3。
可见,在本申请实施例中,数据分配装置可以根据预设的标识生成规则生成各事件数据对应的事件标识,并且在将各事件标识分配至服务器时,依据服务器的个数进行分配,保证同一个事件标识会被分配至同一个服务器上进行处理,使得服务器统计事件标识的计数值时不会出现错误或者疏漏,并且,因为各个事件标识分配至各个服务器是随机的,因此,一定程度上还避免了事件标识在各个服务器之间的数据倾斜问题。
在本申请实施例中,数据分配装置将事件标识发送至各个服务器后,在各服务器中,为了方便统计单个时间片内事件标识对应的事件被用户提交的次数,各服务器可以分别设置多个一一对应的存储空间和时间片。其中,各时间片的间隔时长相同,各存储空间分别包括时间戳和分段计数值,该时间戳用于表示从该时间戳开始的间隔时长内接收到的事件标识对应的事件,需要累加至该时间戳所属的存储空间中。
例如,对于服务器来讲,设置3个存储空间store:store1、store2和 store3,各store的大小可以不相同,各store对应的时间片的间隔时长 interval相同,interval可以取毫秒级的数量,例如interval为2毫秒。各 store均包括一个时间戳和一个分段计数值,时间戳记录的值ts可以用于表示从ts开始到ts+interval这一段时间内的事件,其对应的事件标识应该累加至该时间戳所属的存储空间包括的分段计数值。该分段计数值可以通过映射表来实现,即,各存储空间对应的、接收到的事件标识的分段计数值可以保存在一张映射表中,该映射表中保存了事件标识及其在 ts开始到ts+interval这一段时间内的分段计数值。
假设,存在3个存储空间store1、store2和store3,分别对应3个时间片:“2017/5/900:00:01”、“2017/5/9 00:00:02”和“2017/5/9 00:00:03”,即store1保存了在“2017/5/900:00:01”时间段内进入的事件标识的计数值,以此类推,store3保存了在“2017/5/9 00:00:03”时间段内进入的事件标识的计数值,即每个存储空间存储1秒的数据,即interval=1000(毫秒)。假设这3个时间片分别对应的接收时刻为:1494259201000(毫秒),1494259202000(毫秒)和1494259203000(毫秒)。则存储空间store对应的时间戳就是接收时刻与间隔时长的商,即存储空间store1对应的时间戳ts1=1494259201000/interval=1494259201,存储空间store2对应的时间戳ts2=1494259202000/interval=1494259202,存储空间store3对应的 ts3=1494259203000/interval=1494259203。
在本申请实施例中,在服务器中的n个存储空间可以循环使用。仍以 3个存储空间分别对应3秒钟的时间片为例,store1存储第一秒内接收到的事件标识的分段计数值,store2存储第二秒内接收到的事件标识的分段计数值,而store3存储第三秒内接收到的事件标识的分段计数值,以此类推,在第4秒的时候,由第一个存储空间store1存储第4秒接收到的事件标识的分段计数值,在第5秒的时候,由第二个存储空间store2存储第5秒接收到的事件标识的分段计数值,等等。
参考图3,示出了本申请一种数据处理方法实施例的流程图,所述处理方法应用于与数据分配装置相连的任一服务器103中,本实施例可以包括以下步骤301~步骤306:
步骤301:接收事件标识,并获取所述事件标识对应的时长参数。
在数据分配装置将各个事件标识按照索引值发送至各个服务器之后,对于每个服务器来讲,接收到事件标识后,可以获取到该事件标识对应的时长参数,以便服务器来统计该事件标识对应的事件在该时长参数示意的时间范围内的计数值。其中,该时长参数可以预先由本领域技术人员进行配置并保存在各个服务器中,对于每一种类型的事件,可以设置一个时长参数来表示该类型的所有事件的时间范围。例如,对于下单这一种类型的事件,可以查询2秒内的计数值,则针对下单类型的事件,时长参数就是2秒。当然,本领域技术人员也可以为时长参数预先设置其他的数值。
步骤302:统计所述事件标识对应的事件在所述时长参数内的总计数值。
因为经过数据分配装置的分配,相同的事件标识就会发送至同一个服务器,所以,只需要该服务器统计自己接收到的事件标识对应的总计数值即可,无需考虑其他服务器。
具体的,根据服务器中包括的各个存储空间对应的时间戳,存储空间与来确定需要统计哪些存储空间中记录的分段计数值,再将各个待统计的存储空间中的分段计数值进行累加即可得到事件标识的总计数值。步骤302的一种实施方式可以包括步骤B1~步骤B4:
步骤B1:获取所述事件标识的接收时刻。
首先,确定待统计的事件标识A的接收时刻。假设,事件标识A是 2017年5月9号00:00:03的时刻服务器1接收到的,则相对应的接收时刻time=1494259203000。
步骤B2:计算所述接收时刻与所述间隔时长的商,以及该商与各存储空间包括的时间戳之间的差值,并将各差值分别作为各存储空间的查询参数。
在本步骤中,计算的接收时刻“2017/5/9 00:00:03”与间隔时长的商为1494259203000/interval=1494259203,再将该商“1494259203”分别与 store1、store2和store3对应的时间戳1494259201、1494259202和 1494259203相减,分别得到三个差值为:2、1和0,即store1的查询参数为2,store2的查询参数为1,以及,store3的查询参数为0。
步骤B3:判断所述各存储空间的查询参数是否小于所述时长参数,如果是,则进入步骤B4。
针对上述3个存储空间,分别判断其对应的查询参数是否小于时长参数的值,即判断store1、store2和store3对应的查询参数是否小于2,判断得到store2和store3的查询参数小于2,而store1的查询参数等于2。
步骤B4:获取该存储空间包括的分段计数值并进行累加,得到所述事件标识的总计数值。
则针对store2和store3,就将这两个存储空间内的映射表中记录的事件标识A对应的分段计数值进行累加,得到事件标识A的总计数值。例如,store2的映射表中事件标识A的分段计数值为2,store3的映射表中事件标识A的分段计数值为1,则事件标识A在时长参数2秒内的总计数值为2+1=3。
步骤303:判断所述总计数值是否超过预设处理阈值,如果超过,则进入步骤304;如果未超过,则进入步骤305。
接着,判断步骤302得到的总计数值是否超过预设处理阈值,例如,可以将处理阈值预先设置为2,计算得到事件标识A的总计数值超过了预设处理阈值,则进入步骤304。
步骤304:忽略所述事件所对应的、不可重复处理的部分操作。
在实际应用中,会有一些事件对应的操作是不可重复处理的,例如,用户对同一个订单进行付款时的付款请求,如果由于网页延迟等原因,重复提交了付款请求,就会对用户执行重复扣款操作,这种重复操作将会给用户体验带来很不好的影响。因此,在本实施例中,针对这一类型的事件对应的操作,例如,扣减用户积分的操作,或者扣款操作,以及,对用户账号的禁用操作等等,都可以预先设置对应的处理阈值,当发现事件的事件标识的总计数值超过了预设处理阈值,即可直接忽略事件所对应的、不可重复处理的那部分操作,例如,扣款或者扣减积分等操作。
步骤305:执行所述事件所对应的、不可重复处理的部分操作,接着进入步骤306。
而如果事件标识对应的总计数值未超过预设处理阈值,则说明可以执行该事件对应的、涉及用户私人信息的那部分不可重复处理的部分操作,因为未超过预设处理阈值,再执行该事件对应的那部分操作时说明不会重复执行。
步骤306:按照所述事件标识的接收时刻,累加所述事件的计数值。
接着,再按照事件标识的接收时刻,累加事件的计数值,即将事件标识对应的分段计数值在与接收时刻对应的存储空间内,加1。具体的,步骤306可以包括步骤C1~步骤C4:
步骤C1:计算所述事件标识的接收时刻除以所述间隔时长的商,作为待存储时间戳,以及,计算所述接收时刻与所述存储空间的个数的余数,作为待存储空间索引。
首先,在接收到事件标识的时候,计算事件标识的接收时刻除以间隔时长的商,作为待存储时间戳,即ts=time/interval;以及,计算接收时刻所述存储空间的个数的余数,作为待存储空间索引,即index=time/n,其中,n为存储空间的个数。仍为服务器内以3个存储空间为例,假设得到的index=0,则表示需要将该事件标识在第一个存储空间store1内的分段计数值加1,以此类推,假设得到的index=2,则表示需要将该事件标识在存储空间store3内的分段计数值加1。
步骤C2:判断所述待存储空间索引对应的存储空间包括的原始时间戳,与所述待存储时间戳是否相同,如果是,则进入步骤C3;如果否,则进入步骤C4。
接着,判断步骤C1中得到的index对应的存储空间所包括的原始时间戳,与步骤C1中实际计算得到的待存储时间戳是否相同,如果相同,则进入步骤C3,将该存储空间的映射表中保存的事件标识对应的分段计数值加1。例如,假设得到的index为零,即第一个存储空间store1为待存储空间,则store1所包括的时间戳ts1为原始时间戳,而步骤C1计算得到的时间戳如果也等于ts1,则执行步骤C3,如果不等于ts1,则进入步骤C4。
步骤C3:累加所述原始时间戳对应的分段计数值。
本步骤中将待存储空间索引对应的存储空间内映射表中该事件标识的分段计数值加1,表示在time时刻接收到一次该事件标识对应的事件,以便后续需要判断是否执行事件对应的、不可重复执行的部分操作时,将各个分段计数值进行累加得到总计数值。
步骤C4:清空所述原始时间戳对应的存储空间,将所述原始时间戳替换为所述待存储时间戳,并累加所述待存储时间戳对应的、该事件的分段计数值。
如果不相同,则说明待存储索引index已经过期,则将待存储索引 index对应的存储空间中的映射表清零,并将清零后的存储空间的时间戳设置为步骤C1中计算得到的时间戳ts,将该事件标识对应的分段计数值加1,以及将分段计数值保存至该存储空间内的映射表中。
可见,本申请实施例中,在各服务器接收到事件标识后,可以将一段时间内存储的该事件标识对应的分段计数值进行累加,从而得到该事件标识对应的总计数量,再将该总计数量与预设处理阈值进行判断,从而在超过预设处理阈值的时候,就不再响应该事件标识的事件所对应的用户操作,也就避免了在事件数据产生重复的情况下,还会执行事件对应的用户操作产生的数据错误,同时,由于避免对用户的重复扣款或者扣减积分等相关操作,也提升了用户体验。
再进一步的,由于服务器内部还会划分出多个存储空间,每一个存储空间都存储某一段事件内接收到的事件标识的分段计数值,从而可以快速地查找到各存储空间存储的分段计数值进行累加,得到事件的总数量,保证了数据处理速度以及准确度。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种数据分配方法实施例所提供的方法相对应,参见图4,本申请还提供了一种数据分配装置实施例,在本实施例中,该数据分配装置与多个服务器相连,该数据分配装置可以包括:
事件数据接收单元401,用于接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据。
生成单元402,用于依据预先设置的标识生成规则,生成所述事件数据对应的事件标识。
其中,所述生成单元402具体可以包括:
第一获取子单元,用于获取所述所述事件数据包括的用户标识、操作的类型标识和/或操作对象标识;和,组合子单元,用于组合所述用户标识、操作的类型标识和/或操作对象标识,得到所述事件标识。
分配单元403,用于依据所述服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
其中,所述分配单元403具体可以包括:
哈希运算子单元,用于对于每个事件数据,将对应的事件标识进行哈希运算,得到事件标识的哈希值;取模运算子单元,用于将所述哈希值对所述服务器的个数进行取模运算,得到索引值;和,发送子单元,用于将所述事件标识发送至所述索引值标识的服务器中。
与上述本申请一种数据处理方法实施例所提供的方法相对应,参考图 5所示,本申请还提供了一种服务器实施例,在本实施例中,该服务器与数据分配装置相连,该服务器可以包括:
事件标识接收单元501,用于接收所述数据分配装置发送的事件标识,并获取所述事件标识对应的时长参数。
统计单元502,用于统计所述事件标识对应的事件在所述时长参数内的总计数值;所述服务器中保存有多个事件标识及其对应的计数值。
其中,所述统计单元502具体可以包括:
第二获取子单元,用于获取所述事件标识的接收时刻;第一计算子单元,用于计算所述接收时刻与所述间隔时长的商,以及该商与各存储空间包括的时间戳之间的差值,并将各差值分别作为各存储空间的查询参数;第一判断子单元,用于判断所述各存储空间的查询参数是否小于所述时长参数;第一累加子单元,用于在所述第一判断子单元的结果为是的情况下,获取该存储空间包括的分段计数值并进行累加,得到所述事件标识的总计数值。
判断单元503,用于判断所述总计数值是否超过预设处理阈值。
第一处理单元504,用于在所述判断单元的结果为超过的情况下,忽略所述事件所对应的、不可重复处理的部分操作。
第二处理单元505,用于在所述判断单元的结果为不超过的情况下,执行所述事件所对应的、不可重复处理的部分操作。
累加单元506,用于在触发所述第二处理单元后,按照所述事件标识的接收时刻,累加所述事件的计数值。
其中,所述服务器中包括多个一一对应的存储空间和时间片,各时间片的间隔时长相同,所述存储空间包括时间戳和分段计数值,所述时间戳用于表示从该时间戳开始的间隔时长内接收到的事件标识对应的事件,需要累加至该存储空间中;所述累加单元506具体可以包括:
第二计算子单元,用于计算所述事件标识的接收时刻除以所述间隔时长的商,作为待存储时间戳,以及,计算所述接收时刻与所述存储空间的个数的余数,作为待存储空间索引;和,第二判断子单元,用于判断所述待存储空间索引对应的存储空间包括的原始时间戳,与所述待存储时间戳是否相同;第二累加子单元,用于在所述第二判断子单元的结果为是的情况下,累加所述原始时间戳对应的分段计数值;清空子单元,用于在所述第二判断子单元为否的情况下,清空所述原始时间戳对应的存储空间,将所述原始时间戳替换为所述待存储时间戳;第三累加子单元,用于累加所述待存储时间戳对应的、该事件的分段计数值。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于数据分配的程序,该处理可以包括以下步骤:
接收步骤,其接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
生成步骤,其依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;以及,
分配步骤,其依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
本申请实施例还提供了另一种计算机可读介质,该计算机可读介质存储有使计算机执行用于,该处理可以包括以下步骤:
接收步骤,其接收事件标识,并获取所述事件标识对应的时长参数;
统计步骤,其统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断步骤,其判断所述总计数值是否超过预设处理阈值;
第一处理步骤,用于在判断步骤得到超过的结果的情况下,忽略所述事件所对应的、不可重复处理的部分操作;
第二处理步骤,用于在判断步骤得到不超过的结果的情况下,执行所述事件所对应的、不可重复处理的部分操作;以及,
累加步骤,用于在第二处理步骤之后,按照所述事件标识的接收时刻,累加所述事件的计数值。
图6为本申请实施例中一种计算机设备600的硬件结构示意图。计算机设备600可用于实现数据分配,例如可以是客户端。即计算机设备600可用于执行上述实施例中提供的方法。在本实施例中,计算机设备 600包括:处理器601、存储器602、网络接口603和总线***604。
所述总线***604,用于将计算设备600的各个硬件组件耦合在一起。
所述网络接口603,用于实现计算设备600与至少一个其它计算设备之间的通信连接,可以使用互联网,广域网,本地网,城域网等方式。
所述存储器602,用于存储程序指令和/或数据。
所述处理器601,用于读取存储器602中存储的指令和/或数据,执行以下操作:
接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中。
其中,所述所述依据预先设置的标识生成规则,生成所述事件数据对应的事件标识,可以包括:获取所述所述事件数据包括的用户标识、操作的类型标识和/或操作对象标识;组合所述用户标识、操作的类型标识和/或操作对象标识,得到所述事件标识。
其中,所述依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中,可以包括:
对于每个事件数据,将对应的事件标识进行哈希运算,得到事件标识的哈希值;将所述哈希值对所述服务器的个数进行取模运算,得到索引值;将所述事件标识发送至所述索引值标识的服务器中。
图7为本申请实施例中另一种计算机设备700的硬件结构示意图。计算机设备700可用于实现数据分配,例如可以是客户端。即计算机设备700可用于执行上述实施例中提供的方法。在本实施例中,计算机设备700包括:处理器701、存储器702、网络接口703和总线***704。
所述总线***704,用于将计算设备700的各个硬件组件耦合在一起。
所述网络接口703,用于实现计算设备700与至少一个其它计算设备之间的通信连接,可以使用互联网,广域网,本地网,城域网等方式。
所述存储器702,用于存储程序指令和/或数据。
所述处理器701,用于读取存储器702中存储的指令和/或数据,执行以下操作:
接收事件标识,并获取所述事件标识对应的时长参数;
统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断所述总计数值是否超过预设处理阈值,如果超过,则忽略所述事件所对应的、不可重复处理的部分操作;如果不超过,则执行所述事件所对应的、不可重复处理的部分操作,并按照所述事件标识的接收时刻,累加所述事件的计数值。
其中,所述服务器中包括多个一一对应的存储空间和时间片,各时间片的间隔时长相同,所述存储空间包括时间戳和分段计数值,所述时间戳用于表示从该时间戳开始的间隔时长内接收到的事件标识对应的事件,需要累加至该存储空间中;所述按照所述事件标识的接收时刻,累加所述事件的计数值,可以包括:
计算所述事件标识的接收时刻除以所述间隔时长的商,作为待存储时间戳,以及,计算所述接收时刻与所述存储空间的个数的余数,作为待存储空间索引;判断所述待存储空间索引对应的存储空间包括的原始时间戳,与所述待存储时间戳是否相同,如果是,则累加所述原始时间戳对应的分段计数值;如果否,则清空所述原始时间戳对应的存储空间,将所述原始时间戳替换为所述待存储时间戳,并累加所述待存储时间戳对应的、该事件的分段计数值。
其中,所述统计所述事件标识对应的事件在所述时长参数内的总计数值,可以包括:
获取所述事件标识的接收时刻;计算所述接收时刻与所述间隔时长的商,以及该商与各存储空间包括的时间戳之间的差值,并将各差值分别作为各存储空间的查询参数;判断所述各存储空间的查询参数是否小于所述时长参数,如果是,则获取该存储空间包括的分段计数值并进行累加,得到所述事件标识的总计数值。
在实际应用中,本申请实施例的数据处理方法,可以先由第一计算机设备生成事件标识,其中,所述事件标识至少包括或基于如下数据之一:用户ID、时间戳、操作码、操作对象ID;然后第一计算机设备向第二计算机设备发送所述事件标识,其中,所述第二计算机设备基于所述事件标识进行去重操作。
其中,参见图8a~图8b,本申请还提供了一种用户界面交互设备,该交互设备可以包括:
第一交互模块,用于在接收第一触发指令后,向处理器转发所述第一触发指令,以便处理器接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据。
在用户通过交互界面点击“接收事件数据”的控件(参考图8a)后,交互设备的第一交互模块接收第一触发指令,然后,第一交互模块向处理器转发第一触发指令,以便处理器可以接收前台***发送的、事件的事件数据,所述事件数据可以包括:用户在前台***的操作的相关数据。
第二交互模块,用于接收第二触发指令,并向处理器转发所述第一触发指令,以便接收处理器依据预先设置的标识生成规则,生成所述事件数据对应的事件标识。
在用户通过交互界面点击“生成事件标识”的控件(参考图8a)后,交互设备的第二交互模块接收第二触发指令,然后,第二交互模块向处理器转发第二触发指令,以便依据预先设置的标识生成规则,生成所述事件数据对应的事件标识。
第三交互模块,用于接收第三触发指令,并向处理器转发所述第三触发指令,以便处理器依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中(参考图8b)。
在用户通过交互界面点击“显示分配结果”的控件(参考图8a)后,交互设备的第三交互模块接收第三触发指令,然后,第三交互模块向处理器转发第三触发指令,以便依据所述服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中,并接收处理器发送的分配结果进行显示。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
其中,参见图9a~图9b,本申请还提供了另一种用户界面交互设备,该交互设备可以包括:
第四交互模块,用于在接收第四触发指令后,向处理器转发所述第四触发指令,以便处理器接收事件标识,并获取所述事件标识对应的时长参数。
在用户通过交互界面点击“接收事件标识”的控件(参考图9a)后,交互设备的第四交互模块接收第四触发指令,然后,第四交互模块向处理器转发第四触发指令,以便处理器可以接收所述数据分配装置发送的事件标识,并获取所述事件标识对应的时长参数。
第五交互模块,用于接收第五触发指令,并向处理器转发所述第五触发指令,以便接收处理器统计所述事件标识对应的事件在所述时长参数内的总计数值;所述服务器中保存有多个事件标识及其对应的计数值。
在用户通过交互界面点击“统计计数值”的控件(参考图9a)后,交互设备的第五交互模块接收第五触发指令,然后,第五交互模块向处理器转发第五触发指令,以便依据预先设置的标识生成规则,生成所述事件数据对应的事件标识。
第六交互模块,用于接收第六触发指令,并向处理器转发所述第六触发指令,以便处理器判断所述总计数值是否超过预设处理阈值,如果超过,则忽略所述事件所对应的、不可重复处理的部分操作;如果不超过,则执行所述事件所对应的、不可重复处理的部分操作,并按照所述事件标识的接收时刻,累加所述事件的计数值(参考图9b)。
在用户通过交互界面点击“显示处理结果”的控件(参考图9a)后,交互设备的第六交互模块接收第六触发指令,然后,第六交互模块向处理器转发第六触发指令,以便依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中,并接收处理器发送的分配结果进行显示。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的数据分配方法及装置、数据处理方法及服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (5)
1.一种数据分配和处理方法,其特征在于,所述方法包括:
由数据分配装置执行以下步骤:
接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
依据服务器的个数,将所述事件标识对应的事件数据分配至多个服务器中;
由服务器执行以下步骤:
接收事件标识,并获取所述事件标识对应的时长参数;
统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断所述总计数值是否超过预设处理阈值,如果超过,则忽略所述事件所对应的、不可重复处理的部分操作;
如果不超过,则执行所述事件所对应的、不可重复处理的部分操作,并按照所述事件标识的接收时刻,累加所述事件的计数值。
2.根据权利要求1所述的方法,其特征在于,所述依据预先设置的标识生成规则,生成所述事件数据对应的事件标识,包括:
获取所述事件数据包括的用户标识、操作的类型标识和/或操作对象标识;
组合所述用户标识、操作的类型标识和/或操作对象标识,得到所述事件标识。
3.根据权利要求1所述的方法,其特征在于,所述依据服务器的个数,将所述事件标识对应的事件数据分配至所述多个服务器中,包括:
对于每个事件数据,将对应的事件标识进行哈希运算,得到事件标识的哈希值;
将所述哈希值对所述服务器的个数进行取模运算,得到索引值;
将所述事件标识发送至所述索引值标识的服务器中。
4.一种数据分配和处理***,其特征在于,所述数据分配和处理***包括数据分配装置和服务器:
所述数据分配装置包括:
事件数据接收单元,用于接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
生成单元,用于依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
分配单元,用于依据服务器的个数,将所述事件标识对应的事件数据分配至多个服务器中;
所述服务器包括:
事件标识接收单元,用于接收事件标识,并获取所述事件标识对应的时长参数;
统计单元,用于统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断单元,用于判断所述总计数值是否超过预设处理阈值;
第一处理单元,用于在所述判断单元的结果为超过的情况下,忽略所述事件所对应的、不可重复处理的部分操作;
第二处理单元,用于在所述判断单元的结果为不超过的情况下,执行所述事件所对应的、不可重复处理的部分操作;
累加单元,用于在触发所述第二处理单元后,按照所述事件标识的接收时刻,累加所述事件的计数值。
5.一种计算机可读记录介质,该计算机可读记录介质存储有使数据分配和处理***执行用于数据分配和处理的程序,该数据分配和处理***包括数据分配装置和服务器,在执行所述程序时,所述数据分配装置执行:
事件数据接收步骤,其接收事件数据,所述事件数据包括:用户在前台***的操作的相关数据;
生成步骤,其依据预先设置的标识生成规则,生成所述事件数据对应的事件标识;
分配步骤,其依据服务器的个数,将所述事件标识对应的事件数据分配至多个服务器中;
所述服务器执行:
事件标识接收步骤,其接收事件标识,并获取所述事件标识对应的时长参数;
统计步骤,其统计所述事件标识对应的事件在所述时长参数内的总计数值;
判断步骤,其判断所述总计数值是否超过预设处理阈值;
第一处理步骤,用于在判断步骤得到超过的结果的情况下,忽略所述事件所对应的、不可重复处理的部分操作;
第二处理步骤,用于在判断步骤得到不超过的结果的情况下,执行所述事件所对应的、不可重复处理的部分操作;
累加步骤,用于在第二处理步骤之后,按照所述事件标识的接收时刻,累加所述事件的计数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710612889.2A CN109302300B (zh) | 2017-07-25 | 2017-07-25 | 数据分配和处理方法、***及计算机可读记录介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710612889.2A CN109302300B (zh) | 2017-07-25 | 2017-07-25 | 数据分配和处理方法、***及计算机可读记录介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109302300A CN109302300A (zh) | 2019-02-01 |
CN109302300B true CN109302300B (zh) | 2022-03-15 |
Family
ID=65167366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710612889.2A Active CN109302300B (zh) | 2017-07-25 | 2017-07-25 | 数据分配和处理方法、***及计算机可读记录介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109302300B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442466B (zh) * | 2019-06-14 | 2024-05-07 | 平安科技(深圳)有限公司 | 防止请求重复访问方法、装置、计算机设备及存储介质 |
CN113139097A (zh) * | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 数据写入、数据读取方法、装置及设备 |
CN112131267B (zh) * | 2020-08-14 | 2023-10-03 | 北京达佳互联信息技术有限公司 | 计数处理方法、装置、服务器和计数处理*** |
CN112260902A (zh) * | 2020-10-23 | 2021-01-22 | 深圳前海微众银行股份有限公司 | 网络设备监控方法、装置、设备及存储介质 |
CN112929379B (zh) * | 2021-02-22 | 2023-03-24 | 深圳供电局有限公司 | 一种智能录波器远程运维指令防御方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009586B (zh) * | 2006-01-27 | 2010-09-08 | 华为技术有限公司 | 告警***中对告警过滤条件的处理方法 |
JP4677686B2 (ja) * | 2001-06-15 | 2011-04-27 | 株式会社ニコン | インタフェース装置及びプログラムを記録した記録媒体 |
CN102541918A (zh) * | 2010-12-30 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 重复信息识别方法和设备 |
CN102663590A (zh) * | 2012-02-29 | 2012-09-12 | 向亚峰 | 基于限制认证次数的商品防伪认证***及方法 |
CN103164511A (zh) * | 2013-02-21 | 2013-06-19 | 烽火通信科技股份有限公司 | 一种存储事件日志自动过滤重复抖动数据的方法 |
CN103297468A (zh) * | 2012-02-29 | 2013-09-11 | 华为技术有限公司 | 针对群组资源的操作方法、群组服务器 |
CN104077701A (zh) * | 2014-06-09 | 2014-10-01 | 中国建设银行股份有限公司 | 用于电商平台的任务处理方法及装置 |
CN104508700A (zh) * | 2012-07-27 | 2015-04-08 | 谷歌公司 | 确定内容项的呈现和用户在销售点终端的交易间的相关性 |
CN104618432A (zh) * | 2014-12-30 | 2015-05-13 | 北京红马传媒文化发展有限公司 | 一种事件发送与接收的处理方法和处理*** |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010067511A (ko) * | 2001-02-02 | 2001-07-13 | 허경진 최병무 | 비밀번호 및 고유번호가 할당된 상품을 이용한 통신요금감면 방법 |
CN1762141B (zh) * | 2003-11-10 | 2010-05-26 | Eath株式会社 | 合计*** |
US20090070336A1 (en) * | 2007-09-07 | 2009-03-12 | Sap Ag | Method and system for managing transmitted requests |
US9176964B1 (en) * | 2008-08-18 | 2015-11-03 | Guidance Software, Inc. | Scalable deduplication system and method |
US9754005B2 (en) * | 2012-06-18 | 2017-09-05 | Actifio, Inc. | System and method for incrementally backing up out-of-band data |
FR2993685A1 (fr) * | 2012-07-17 | 2014-01-24 | France Telecom | Surveillance d'evenements sur des machines informatiques. |
CA2790479C (en) * | 2012-09-24 | 2020-12-15 | Ibm Canada Limited - Ibm Canada Limitee | Partitioning a search space for distributed crawling |
CN106296246B (zh) * | 2015-05-26 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 业务处理方法及装置 |
CN105468699B (zh) * | 2015-11-18 | 2019-06-18 | 珠海多玩信息技术有限公司 | 去重数据统计方法及设备 |
CN106899666B (zh) * | 2017-02-21 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种针对业务标识的数据处理方法及装置 |
-
2017
- 2017-07-25 CN CN201710612889.2A patent/CN109302300B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4677686B2 (ja) * | 2001-06-15 | 2011-04-27 | 株式会社ニコン | インタフェース装置及びプログラムを記録した記録媒体 |
CN101009586B (zh) * | 2006-01-27 | 2010-09-08 | 华为技术有限公司 | 告警***中对告警过滤条件的处理方法 |
CN102541918A (zh) * | 2010-12-30 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 重复信息识别方法和设备 |
CN102663590A (zh) * | 2012-02-29 | 2012-09-12 | 向亚峰 | 基于限制认证次数的商品防伪认证***及方法 |
CN103297468A (zh) * | 2012-02-29 | 2013-09-11 | 华为技术有限公司 | 针对群组资源的操作方法、群组服务器 |
CN104508700A (zh) * | 2012-07-27 | 2015-04-08 | 谷歌公司 | 确定内容项的呈现和用户在销售点终端的交易间的相关性 |
CN103164511A (zh) * | 2013-02-21 | 2013-06-19 | 烽火通信科技股份有限公司 | 一种存储事件日志自动过滤重复抖动数据的方法 |
CN104077701A (zh) * | 2014-06-09 | 2014-10-01 | 中国建设银行股份有限公司 | 用于电商平台的任务处理方法及装置 |
CN104618432A (zh) * | 2014-12-30 | 2015-05-13 | 北京红马传媒文化发展有限公司 | 一种事件发送与接收的处理方法和处理*** |
Also Published As
Publication number | Publication date |
---|---|
CN109302300A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302300B (zh) | 数据分配和处理方法、***及计算机可读记录介质 | |
JP6312751B2 (ja) | ビジネスサービス処理状況情報のクエリ | |
CN107360006B (zh) | 一种资源计费方法和装置 | |
CN107291928B (zh) | 一种日志存储***和方法 | |
WO2016131365A1 (zh) | 信息处理方法、客户端、服务器及计算机可读存储介质 | |
CN109558397B (zh) | 一种数据处理方法、装置、服务器及计算机存储介质 | |
CN109729060B (zh) | 保单出单请求的处理方法、装置及设备 | |
CN107404541B (zh) | 一种对等网络传输邻居节点选择的方法及*** | |
CN106933836B (zh) | 一种基于分表的数据存储方法和*** | |
CN107276970B (zh) | 一种解绑、绑定方法和装置 | |
JP2019507424A5 (zh) | ||
CN111260399B (zh) | 基于区块链网络的广告数据处理方法、装置及电子设备 | |
CN109597800B (zh) | 一种日志分发方法及装置 | |
CN110909978A (zh) | 资源处理方法、装置、服务器及计算机可读存储介质 | |
CN110727727A (zh) | 一种数据库的统计方法及装置 | |
TW201824018A (zh) | 即時資料處理方法和裝置 | |
CN108415908B (zh) | 一种多媒体数据的处理方法及服务器 | |
CN104917731A (zh) | 一种提高数据显示速度的方法及***、服务器、浏览器 | |
CN108874805B (zh) | 数据的处理方法和装置 | |
CN111311310B (zh) | 广告订单推送方法及装置、存储介质及电子装置 | |
JP2019160130A (ja) | 利用料決定プログラム、利用料決定方法、及び情報処理装置 | |
CN113746920A (zh) | 一种数据转发方法、装置、电子设备及计算机可读存储介质 | |
CN103973744A (zh) | 一种分布式文件递进存储技术 | |
CN115080220A (zh) | 云资源分配方法及设备 | |
CN108259552B (zh) | 案件处理***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |