基于Kafka的服务端用户行为日志采集
优采云 发布时间: 2020-08-18 06:12基于Kafka的服务端用户行为日志采集
本文来自网易云社区
作者:李勇
背景
随着互联网的不断发展,用户所形成的行为数据被越来越多的网站重视,那么哪些是用户行为呢?所谓的用户行为主要由五种元素组成:时间、地点、人物、行为、行为对应的内容。为什么要做用户的行为剖析?因为只有做了用户行为剖析能够晓得用户画像、才能晓得用户在网站上的各类浏览、点击、购买背后的商业真相,从而给企业带来商业价值。
网易美学是一个供用户发觉和分享美妆及化妆的社区。既然是一个社区,其中的用户行为剖析饰演着举足轻重的角色。对应网易美学来说,用户行为主要有以下几个应用场景:
埋点技术
用户的行为对于一个互联网产品来说很重要,因此怎么采集用户的行为就显得十分至关重要了。对用户的行为采集可以通过埋点的方法实现,埋点主要有以下几种形式:
服务端日志采集
下面我详尽介绍下网易美学的服务端日志采集系统使用的技术,总体构架,部署图,运作流程以及配置相关信息。
1.技术选型
服务端日志采集主要通过在Controller的插口中进行埋点,然后通过AOP技术、Kafka消息系统以及logback对用户行为进行采集。
之所以使用AOP技术是因为AOP的以下重要特定:
由于使用异步方法对用户行为信息进行搜集,因此须要使用消息中间件。目前消息中间件特别多,比较流行的有ActiveMQ、ZeroMQ、RabbitMQ、Kafka等。每个消息中间件都有各类的优势劣势,之所以使用Kafka消息中间件,是因为以下几点诱因:
因为用户的行为数据最终是以日志的方式持久化的,因此使用logback对日志持久化到日志服务器中。
2.总体构架
图1总体构架图
服务端日志采集系统主要由两个工程组成:beauty-bi-core和beauty-bi-service。由于网易美学的使用dubbo框架,因此有服务提供方和服务消费方。beauty-bi-core被web、wap和mainsite服务消费方依赖。此外,beauty-bi-service也依赖于beauty-bi-core,主要是依赖于其中的一些实体类及工具类。
beauty-bi-core工程为Kafka消息的生产者,主要封装实现切面的具体逻辑,其主要职责如下:
beauty-bi-service工程为Kafka消息的消费者,其主要职责如下:
3.部署图
图2部署图
上图为网易美学与日志系统系统相关的布署图,App、Wap和Mainsite服务器集群分别对应不同终端的应用。Kafka集群使用杭研的集群,目前有10个Broker。日志服务器有两台,通过Kafka的均衡策略对日志进行消费。
4.日志采集的流程
日志采集流程图如下所示:
图3日志打点流程图
上图为消息生产者和消息消费者共同组成的流程图。
消息生产者的具体步骤如下:
消息消费者的具体步骤如下:
5.相关配置
网易云大礼包:
本文来自网易云社区,经作者勇授权发布。
相关文章:
【推荐】3分钟把握一个有数小技能:制作动态标题