架构设计思路:所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。
业务设计思路:埋点业务设计,首先需要根据业务分析明确采集的目标行为,进一步搞清楚应该在哪些地方埋什么样的点。过程中建议使用“事件模型( Event 模型)”来描述用户的各种行为,事件模型包括事件( Event )和用户( User )两个核心实体。基于4W1H模型描述用户行为可将整个行为描述清楚,要点包括:是谁、什么时间、什么地点、以什么方式、干了什么。通过这两个实体结合在一起就可以清晰地描述清楚用户行为。
技术架构:SDK 埋点采集行为数据来源终端包括 iOS、安卓、Web、H5、微信小程序等。不同终端 SDK 采用对应平台和主流语言的 SDK,埋点采集到的数据通过 JSON 数据以 HTTP POST 方式提交到服务端 API。服务端 API由数据接入系统组成,采用 Nginx 来接收通过 API 发送的数据,并且将之写到日志文件上。使用 Nginx 实现高可靠性与高可扩展性。对于 Nginx 打印到文件的日志,会由 Flume 的 Source 模块来实时读取 Nginx 日志,并由 Channel 模块进行数据处理,最终通过 Sink 模块将处理结果发布到 Kafka 中。
软件完整架构:
第三方埋点SDK集成步骤---引入 SDK:在终端应用配置文件添加 SDK 依赖,不同终端引入方式会有差异,具体操作步骤将在后续SDK技术文档中体现。配置上报服务端API地址:用于设置 SDK 上报 API 的服务端地址。开启全埋点:SDK 可以自动采集一些用户行为,如 App 启动、退出、浏览页面、控件点击。初始化 SDK 时,通过 SDK 提供的初始化方法可以配置开启全埋点。
API接入服务设计:不同渠道的埋点数据通过 HTTP API 发送给服务端API实现数据接入。采用Nginx作为WEB容器接收客户端SDK发送的数据,并且将之写到日志文件上。使用 Nginx 主要是考虑到其高并发、高可靠性与高可扩展性。
用户行为采集场景:通过应用场景梳理,实现以场景规划埋点,用场景检验埋点。场景梳理可以抽象为三个层面:
通用基础场景:共性操作统一考虑。
重要操作场景:重要操作整体归因。
业务主流程场景:以业务线定义完整过程。
应用效果:
开源中国整合了非常多的开源软件,是非常多,几乎各行各业都有。在研究这些软件或者框架或者平台的时候,我们会发现它们有很大的区别,有的小软件单机或者只要一个服务器环境就可以实现和运行,有的开源软件就得搭一个很完整的运行环境,部署一个运行稳定的软件环境不是一件容易的事,所以即使一行代码都不会编,也能在IT行业挣得一份高薪。IT行业里面细分起来,数不胜数,很多人一听某个人是学计算机的,就以为和计算机沾边的他都会,这就大错特错了。
如果你懂软件,但又没条件去搭建环境的话,怎么办?推荐开源中国的Gitee平台。Githup也非常好,是国外的,在这里暂不讨论。
IT行业,网上的社区非常重要,特别是开源软件,甚至可以说,没有社区,就没有开源。
下一步考虑一下,整理个开源软件极简史。
联系客服