基于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分钟把握一个有数小技能:制作动态标题

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线