一种基于消息队列的海量用户行为数据采集方法与系统的制作方法

文档序号:8265391阅读:735来源:国知局
一种基于消息队列的海量用户行为数据采集方法与系统的制作方法
【技术领域】
[0001]本发明涉及互联网领域,尤其是一种基于消息队列的海量用户行为数据采集方法与系统。
【背景技术】
[0002]在计算机的数据处理能力不断上升,大数据成为时代主题的背景下,用户行为数据收集及分析变得越来越重要,收集的数据量也越来越大。如:用户名称、用户ip、请求时间、请求地址、响应时间、页面的使用轨迹、跳转页面、浏览器信息、系统的版本等等,因而服务器端的采集系统面临越来越大的考验。
[0003]在现有的技术中,已经出现对海量的用户行为数据进行采集技术,技术的处理方式一般是对服务器端日志进行异步处理保存在数据库或者其它存储系统中,然后再使用并行处理系统对其海量数据进行后期整理分析、挖掘,结果反馈到如:推荐系统、监控系统、报表系统等使用。这样的处理过程导致某些需要实时反馈的数据得不到实时反馈,处理效率不尚。
[0004]有鉴于此,现有技术有待改进和提尚。

【发明内容】

[0005]鉴于上述技术问题的不足,本发明的目的在于提供一种基于消息队列的海量用户行为数据采集方法与系统,意在于对现有技术中基于异步日志分析的用户行为采集系统的实时性不好,处理效率不高的问题进行改进,提供稳定、高效、实时性好的海量用户行为数据采集方法与系统。
[0006]本发明采用的技术方案是:
一种基于消息队列的海量用户行为数据采集方法,其特征在于:包括以下步骤
51、使用植入脚本在页面中把用户行为数据收集为日志记录并把记录数据通过Http提交到服务器端后台;
52、对日志记录直接通过日志拦截器进行预处理;
53、对S2经过预处理的用户行为数据直接发送到消息队列中,等待处理器采集;
54、用户行为处理器订阅S3中消息队列的数据并进行处理,用户行为处理器根据S3消息队列的数据量动态增加处理器以加快用户行为数据的采集。
[0007]所述步骤S2中预处理是指日志拦截器把数据封装成以单一页面的行为数据为单位的数据包。
[0008]所述步骤S2中,日志拦截器会把不需要处理的数据过滤,及对需要处理的数据解释成数据包。
[0009]所述数据包中的字段包括:请求用户、请求ip、请求参数、请求地址、页面的使用轨迹、跳转页面、浏览器信息、系统信息、响应时间中的一种或多种。
[0010]所述步骤S3中消息队列的入列与出列速度为毫秒级,并且消息队列在数据高峰期对数据缓冲处理。
[0011]所述步骤S4中用户行为处理器是对需要进行实时反馈的数据进行处理。
[0012]所述需要进行实时反馈的数据为pv、uv、热门资源、热门关键字、页面平均访问时间中的一种或多种。
[0013]所述步骤S4针对不同的业务需要定制不同的处理器,且处理器是可分布式并行处理的,根据消息队列的缓存的数量进行增加与减少,结果实时反馈到相应的系统进入实时反馈,并且把原始数据包批量写入存储系统。
[0014]本发明还包括与上述采集方法同一构思的技术方案,一种基于消息队列的海量用户行为数据采集系统,包括
日志拦截模块,用于用户行为数据的过滤及预处理;
消息队列系统,用户行为数据包的中转、分发;
用户行为处理器模块,用于实时用户行为数据的处理、结果反馈及原始数据的批量存储。
[0015]本发明的有益效果是:
本发明提供的基于消息队列的用户行为数据采集方法与系统,把消息队列引入到海量的用户行为数据采集中,充分利用消息队列:数据传输高效、数据吞吐量大、横向扩展性好等特点用于海量的用户行为数据采集,提高了数据采集实时性及数据采集效率,特别是互联网海量的用户行为采集提供了稳定、高效及实时性好的解决方案。
【附图说明】
[0016]下面结合附图对本发明的【具体实施方式】做进一步的说明。
[0017]图1是本发明用户行为数据采集方法与系统的原理框图。
【具体实施方式】
[0018]参考图1所示,为本发明的最佳实施案例提供的基于消息队列的海量用户行为数据采集方法与系统,其包括以下步骤:
S1、植入Javascript脚本在页面中,通过内置在浏览器的对象收集所需要的信息,如页面的title、referer、浏览器语言、cookies信息、页面的加载时间、登出的页面及事件跟踪信息等等,把收集到的信息按预定义的格式编码、拼接,通过js创建一个Image对象,将Image对象的src属性指向用户行为数据服务器并携带上拼接好的参数,如:
image.src=http://nenglong.com/1.gif?domain=localhost&url=http%3A%2F%2Flocalhost%3A8080%2F&title=%E5%90%8C%E6%AD%A5%E8%AF%BE%E5%A0%82%E2%80%94%E2%80%94%E5%90%8C%E6%AD%A5%E8%B5%84%E6%BA%90&referrer=&sh=900&sw=1600&cd=24&lang=zh-CN&account=oos0
[0019]用户行数据服务器把请求的ip、请求地址、以及请求时间和请求参数等直接写到文件中。
[0020]S2、日志拦截器,包括:tail文件扫描线程、数据过滤及预处理、数据包发送。拦截器实时把新增的用户行为数据拦截下来并且对用户行为数据进行过滤、格式化、数据包封装等预处理,处理好的数据包直接发送到消息队列中。
[0021]S3、消息队列,对S2的数据进入接收并且根据规则发送到相应的用户行为处理器。消息队列是这个采集过程最重要的环节,它数据分发速度快,数据高峰期时可以缓存数据,同时支持多渠道分发,使用后续处理环节可以分布式、并行处理。
[0022]S4、用户行为处理器,接收到S3发过来的数据包对数据处理,如页面浏览量PV、独立访客UV统计、热门资源、热门关键字、页面的平均访问时间、ip数等,实时把统计数据汇总到监控系统或者其它系统上,原始数据包append到本地的缓存中,当超过一定的数据量或者一定的时间间隔时,批量导入存储系统。原始数据的保存是为后续进一步进行复杂的用户行为数据分析与挖掘。
[0023]以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
【主权项】
1.一种基于消息队列的海量用户行为数据采集方法,其特征在于:包括以下步骤 51、使用植入脚本在页面中把用户行为数据收集为日志记录并把记录数据通过Http提交到服务器端后台; 52、对日志记录直接通过日志拦截器进行预处理; 53、对S2经过预处理的用户行为数据直接发送到消息队列中,等待处理器采集; 54、用户行为处理器订阅S3中消息队列的数据并进行处理,用户行为处理器根据S3消息队列的数据量动态增加处理器以加快用户行为数据的采集。
2.根据权利要求1所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述步骤S2中预处理是指日志拦截器把数据封装成以单一页面的行为数据为单位的数据包。
3.根据权利要求2所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述步骤S2中,日志拦截器会把不需要处理的数据过滤,及对需要处理的数据解释成数据包。
4.根据权利要求3所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述数据包中的字段包括:请求用户、请求ip、请求参数、请求地址、页面的使用轨迹、跳转页面、浏览器信息、系统信息、响应时间中的一种或多种。
5.根据权利要求1所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述步骤S3中消息队列的入列与出列速度为毫秒级,并且消息队列在数据高峰期对数据缓冲处理。
6.根据权利要求1所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述步骤S4中用户行为处理器是对需要进行实时反馈的数据进行处理。
7.根据权利要求6所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述需要进行实时反馈的数据为pv、UV、热门资源、热门关键字、页面平均访问时间中的一种或多种。
8.根据权利要求1所述的一种基于消息队列的海量用户行为数据采集方法,其特征在于:所述步骤S4针对不同的业务需要定制不同的处理器,且处理器是可分布式并行处理的,根据消息队列的缓存的数量进行增加与减少,结果实时反馈到相应的系统进入实时反馈,并且把原始数据包批量写入存储系统。
9.一种基于消息队列的海量用户行为数据采集系统,其特征在于:包括 日志拦截模块,用于用户行为数据的过滤及预处理; 消息队列系统,用户行为数据包的中转、分发; 用户行为处理器模块,用于实时用户行为数据的处理、结果反馈及原始数据的批量存储。
【专利摘要】本发明公开了一种基于消息队列的海量用户行为数据采集系统,包括:日志拦截模块,用于用户行为数据的过滤及预处理;消息队列系统,用户行为数据包的中转、分发;用户行为处理器模块,用于实时用户行为数据的处理、结果反馈及原始数据的批量存储。发明提供的基于消息队列的用户行为数据采集方法与系统,把消息队列引入到海量的用户行为数据采集中,充分利用消息队列:数据传输高效、数据吞吐量大、横向扩展性好等特点用于海量的用户行为数据采集,提高了数据采集实时性及数据采集效率,特别是互联网海量的用户行为采集提供了稳定、高效及实时性好的解决方案。
【IPC分类】H04L29-08, H04L12-24
【公开号】CN104579789
【申请号】CN201510036709
【发明人】余敬龙
【申请人】广东能龙教育股份有限公司
【公开日】2015年4月29日
【申请日】2015年1月23日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1