基于Golang的反刷单方法

文档序号:9688200阅读:962来源:国知局
基于Golang的反刷单方法
【技术领域】
[0001]本发明涉及数据处理技术领域,尤其涉及一种基于Golang的反刷单方法。
【背景技术】
[0002]询价等订单信息的有效性直接影响最终的销售效果,如何保证线索信息的有效性,防止刷单等行为是下单流程中需要实现的一个重要模块,越接近买家购物行为的刷单越不容易被系统识别。在大数据基础上开发的刷单检测系统唯一没办法判定为刷单的就是真实订单。所以刷单技术的更新总是围绕着如何模仿真实买家购物行为进展。市面上流行的刷单方法包含刷单路径分布、七天螺旋刷单规律、刷单流程主要控制浏览时长、浏览整个页面、账号检查等。更具体的刷单方法包括:IP防止作弊、Netclean防止作弊、点击比率、来源统计、唯一参数、点击时间顺差和鼠标值。
[0003]传统的刷单数据处理流程为使用不同的验证函数依次对特征数据验证,当不满足相应的函数则返回错误信息,否则执行完全部函数返回特征信息满足规则。
[0004]传统的刷单数据处理流程类似于工厂中生产线上的工人们那样组织工作者。每个工作者只负责作业中的部分工作。当完成了自己的这部分工作时工作者会将作业转发给下一个工作者。但当前面的生产者出现问题是后面的生产者则无法执行相应的工作。如果出现较长的数据库查询等情况时则需要等待全部函数检查完毕。
[0005]而现有实际情况是,订单数据的实时处理量比较大,传统的刷单数据处理服务存在:处理订单数据慢,效率低且可用性差的问题。

【发明内容】

[0006]本发明的目的在于提供一种基于Golang的反刷单方法,从而解决现有技术中存在的前述问题。
[0007]为了实现上述目的,本发明所述基于Golang的反刷单方法,该方法包括:
[0008]实时跟踪不同特征值的订单数据的数据量变化,然后同时进入历史均值的检测和基于时间窗阀值的检测;所述特征值包括指定商家订单变化量和指定IP地址的订单变化量;
[0009 ]所述基于时间窗阀值的检测,按照下述实现:实时统计指定商家或指定IP地址在指定时间段的订单变化量,判断统计的订单变化量是否超过阈值,如果是,则发出报警;如果否,则进入下一条订单变化量的判断;
[0010]所述历史均值的检测,按照下述实现:依据预先统计并建立每个商家或每个IP地址的订单变化量统计表,判断在指定时间段指定商家或指定IP地址的订单变化量是否超过历史订单变化量均值的指定倍数,如果是,则发出报警;如果否,则进入下一条订单变化量的判断。
[0011]优选地,所述历史变化规律是根据数据库中记载的每个商家历史订单信息综合绘制出的每个时间段的订单量变化规律。
[0012]优选地,实时统计指定商家或指定IP地址在指定时间段的订单变化量是否超过阈值,按照下述步骤实现:
[0013]S1,实时计数服务器接收不符合变化量规律的指定商家或指定IP地址的身份信息,然后依据所述身份信息从数据库中检索到指定商家或指定IP地址的商品信息,并监控并统计在指定时间段M2内指定商家或指定IP地址的订单变化量M;
[0014]S2,所述实时计数服务器从数据库中获取指定在历史时间段Ms内,指定商家或指定IP地址的历史订单变化量均值N;
[0015]S3,判断所述订单变化量Μ与所述历史订单变化量均值N的大小关系,如果Μ>Ν,则发出报警;如果Μ < Ν,则进入下一个订单变化量的判断。
[0016]更优选地,实时计数服务器实时统计在指定时间段M2内指定商家或指定IP地址的订单变化量M,按照下述方法实现:
[0017]获取订单变化量所对应的IP地址,以IP地址作为Key向Redis中累加订单请求次数,设定订单累加的时间段,当在设定的时间中,订单的累加次数作为订单变化量M。
[0018]优选地,所述预先统计并建立每个IP地址的订单数量统计表,按照下述方法实现:
[0019]A1,从数据库中获取属于每个IP地址下的历史订单量信息;
[0020]A2,根据历史订单量信息统计在每个时间段,每个IP地址的历史订单量均值,得到每个IP地址的订单数量统计表。
[0021]优选地,在指定时间段,指定商家或指定IP地址的订单变化量超过历史订单变化量均值的指定倍数,则发出报警,按照下述方法实现:
[0022]获取IP地址,创建以所述IP地址为key、以所述历史订单量均值的指定倍数为大小的队列,当有订单请求向所述队列中插入当前时间的记录时,当前队列的长度大于队列的预先设定大小,获取位于当前队列的队列头部的订单数据,将头部的订单数据的时间小于所述当前时间减去时间阈值时,发出报警。
[0023 ]优选地,使用Re d i S中的I ncr方法计算指定时间段的订单变化量。
[0024]优选地,从订单量统计表获取历史订单量均值,并将指定时间段的历史订单量均值缓存到Redis中。
[0025]本发明的有益效果是:
[0026]本发明通过使用协程执行检验函数的方式,有效的提高了数据的验证效率,当任何一个验证条件不符合时直接返回错误信息,随着后续验证逻辑的增加或当验证函数耗费的时间差异较大时更能体现出本发明的高效性。
[0027]工作者之间无需共享状态,意味着实现的时候无需考虑所有因并发访问共享对象而产生的并发性问题。这使得在实现工作者的时候变得非常容易。在实现工作的时候就好像是单个线程在处理工作-基本上是一个单线程的实现。同时使用流水线并发模型能够更好的利用多核处理器,提高CHJ资源占用计算的速度。
【附图说明】
[0028]图1是基于Golang的反刷单方法的流程图;
[0029]图2是Beego框架架构图。
【具体实施方式】
[0030]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不用于限定本发明。
[0031]由于当前订单的来源包含移动和桌面端,本方案中使用尽量不改动前台的方案进行检测分析。
[0032]实施例,参照图1,本实施例所述基于Golang的反刷单方法,该方法包括:
[0033]实时跟踪不同特征值的订单数据的数据量变化,然后同时进入历史均值的检测和基于时间窗阀值的检测;所述特征值包括指定商家订单变化量和指定IP地址的订单变化量;
[0034]所述基于时间窗阀值的检测,按照下述实现:实时统计指定商家或指定IP地址在指定时间段的订单变化量,判断统计的订单变化量是否超过阈值,如果是,则发出报警;如果否,则进入下一条订单变化量的判断;
[0035]所述历史均值的检测,按照下述实现:依据预先统计并建立每个商家或每个IP地址的订单变化量统计表,判断在指定时间段指定商家或指定IP地址的订单变化量是否超过历史订单变化量均值的指定倍数,如果是,则发出报警;如果否,则进入下一条订单变化量的判断。
[0036]更详细的解释说明:
[0037](— )所述历史变化规律是根据数据库中记载的每个商家历史订单信息综合绘制出的每个时间段的订单量变化规律。
[0038](二)实时统计指定商家或指定IP地址在指定时间段的订单变化量是否超过阈值,按照下述步骤实现:
[0039]S1,实时计数服务器接收不符合变化量规律的指定商家或指定IP地址的身份信息,然后依据所述身份信息从数据库中检索到指定商家或指定IP地址的商品信息,并监控并统计在指定时间段M2内指定商家或指定IP地址的订单变化量M;
[0040]S2,所述实时计数服务器从数据库中获取指定在历史时间段Ms内,指定商家或指定IP地址的历史订单变化量均值N;
[0041 ] S3,判断所述订单变化量Μ与所述历史订单变化量均值N的大小关系,如果M>N,则发出报警;如果Μ < Ν,则进
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1