开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第一阶段):网站流量日志埋点收集--系统部署架构图和采集流程梳理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/693/detail/12179
网站流量日志埋点收集--系统部署架构图和采集流程梳理
本节内容我们学习埋点采集用户行为数据怎么系统搭建和部署。
系统环境部署
在正式安装之前,我们先画部署图从理论层面梳理系统到底怎样埋点收集用户行为数据。
部署图:
一台服务器 www.itcast.cn/indox.html 模仿首页即正常浏览网站的页面,用户通过浏览器肯定要访问这个页面,所以接下来学习用户打开页面会经过哪些流程。
第一步用户要想访问页面首先要通过浏览器输入地址,发送 request 请求,请求打开页面时页面预先埋入了一段埋点代码,所以打开页面后埋点代码开始执行。
所以第二步是用户打开页面,埋点代码匿名函数自调用执行,自己调用自己并且只调用一次,匿名函数自调用需要将真正收集数据的 js 引入页面。
第三步是把真正收集数据的 js 引入页面。(collect.js)
第四步是收集数据的 js 通过我们内置的对象采集我们页面的相关属性信息数据。
第五步是把收集的数据拼接成图片形式发送 ( <img arc=“collect.itcast.cn/log.gif?item=1111&name=allen”> )
另一台服务器 collect.itcast.cn,专门用于接受请求,它是一台特殊的服务器,特殊在它是 nginx(基于lua)。当中会有两个 location 模块,一个是 location/log.gif,另一个是 location/i-log。
所以第六步为以请求图片的形式把采集的数据发送到指定的收集数据服务器上,通过 location 匹配进行处理。第一个 location 功能是生成cookie和生成图片 log.gif。
第七步需要进行 subrequest,第二个 location 是内部模块,它做的事是解析参数和保存数据到日志文件中。
第八步是 response(图片,cookie)。
以上就完成了整个页面的交互,也是架构。
从用户的角度他们能感受到的只要打开页面,显示页面,实质上在打开页面的同时埋点代码开始执行,在后台进行一系列的操作。拉取我们的js,进行数据收集,发送参数数据,保存等,这是后端所做的事情。
自带服务器
这样就贴近于实战,也比较符合类似于京东,天猫等进行数据采集的系统。这就是埋点数据收集的架构图,结合之前剖析的原理认真理解某些模块,哪些知识点在执行什么职责。