用户行为分析--基本架构介绍

2019-03-02 23:57|来源: 网路

最近在给某电商网站做用户行为分析,基本架构如下:

其中:

  • FA是参考GA/BA/TA写的一个精简版的页面JS嵌码,抓取用户页面行为,主要是鼠标点击、按钮点击事件。由于不同页面可能需要抓取其特有的页面元素或事件,故FA也支持针对不同页面嵌入不同的业务子嵌码(通过Nginx拦截后append对应的子嵌码)。
  • 充分利用Netty NIO的特性,搭建一个收集页面用户行为数据的HTTP服务器。
  • MetaQ是淘宝开源的分布式消息中间件,此处使用的是@AVOS-dennis fork的一个分支。Netty收集到页面行为数据之后喂给MetaQ Broker,后续Storm可以根据不同的分析指标和逻辑,定义不同Group的Consumer Spout,从MetaQ Broker拉数据进行分析处理。
  • ZooKeeper是一个分布式协调系统,上述的MetaQ利用ZooKeeper实现分布式。Producer(Netty Server)和Consumer(Storm Spout)通过ZooKeeper获取MetaQ Broker、Topic、Partition列表,同时ZooKeeper还存储消费进度OffSet等信息。
  • Storm是Twitter开源的分布式实时流计算系统(实时处理领域的Hadoop),核心使用Clojure(一种Lisp方言,函数式语言)实现,但基于其开发应用几乎可以使用任何语言。其每秒每个节点可以处理数以百万计的消息,而且具有保证每条消息都得到处理、支持事务等特性,具体后续博文再介绍。
  • 经过Storm分析处理后的结果保存在HBase或MySQL中,如果要支持事务的话,建议选择MySQL。
  • Redis是一个开源的、基于内存的、键值对存储数据库(NoSQL)。与Memcache比起来,Redis一方面支持丰富的数据类型如Map、Set、List等,同时支持持久化。这里主要利用它来实现高效缓存。

转自:http://my.oschina.net/u/187791/blog/157498

相关问答

更多
  • 我不是学计算机的
  • http://hi.baidu.com/kaikao/blog/item/68532812e1e32a0b5aaf5353.html 这里软件架构师面试的自我介绍,我以前就在这里找到过这个资料,希望对你有帮助 !
  • 网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标群体,设定网站整体架构,规划、设计网站栏目及其内容,制定网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。其内容有程序架构,呈现架构,和信息架构三种表现。而步骤主要分为硬架构和软架构两步程序。网络架构是现代网络学习和发展的一个必须的基础技术。 机房的选择 在选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城市,机房价格越贵,从成本的角 度看可以在一些中小城市托管服务器,比如说北京 ...
  • 有 一 个 公 司 做 的 还 是 不 错 的 , 晓 明 科 技 , 他 们 很 多 成 功 的 案 例 , 你 可 以 到 他 们 的 公 司 去 看 看 , 很 多 大 公 司 也 都 是 跟 这 家 公 司 合 作 的 , 很 不 错 的
  • BMA 即B-segment Modular Architecture,是吉利历时4年,汇集了来自全球20多个国家的近百位拥有丰富的模块化架构项目研发及管理经验的专家,借鉴国际成熟、领先的模块化架构的开发理念和开发流程,完全由吉利自主研发和设计的、符合国际化技术标准的紧凑型基础模块化架构;BMA可以理解为百变的智能造车魔方。一辆汽车的动力模块、电器模块、底盘模块、车身模块等都可以如积木般随意组合,各模块接口在架构设计之初就实现了标准化和共享化,因此研发人员能够轻松的在同一个架构上实现不同模块的自由组合与搭配 ...
  • CAE软件主要做各类力学分析:     CAE软件按研究对象分为:静态结构分析,动态分析;按研究问题分为线性问题,非线性问题;按物理场分:结构(固体)、流体、电磁等。   国内常见的前后处理软件包括Altair公司的HyperMesh、GID公司的GID前后处理软件、EDS公司的FEMAP和MSC公司的Patran,这些软件在美国的汽车厂商中都有着广泛的应用。由于有限元技术的特点,使得前处理成为了一个相对独立,而又十分重要的部分。一些大型企业都采用了适应自己需求的前后处理软件。这些前后处理软件都具有良好的接 ...
  • 您可能想要添加: 安全 如何管理对系统的访问? 使用什么过程? 它是如何在技术上实施的? 审计 您有什么审核要求? 是否记录了系统的所有更改? 报告 需要哪些报告? 如何控制对这些报告的访问? When it comes to reviewing banking systems and similar piece of software systems I have found it a valuable resource to have some kind of research institute to ...
  • 查看Apache Click,似乎有一个简单的表示层。 不太了解ORM。 Check out Apache Click, seems to have a simple presentation layer. Don't know about ORMs much.
  • 你可以有3个模型类(每个实体一个) public class Lemon { } public class Sugar { } public class Water { } 并为它们创建一个DbContext: public class MyContext:DbContext { public DbSet LemonSet public DbSet SugarSet public DbSet WaterSet } 这样,您将使用EF ...
  • 根据微软的Schema Compare页面 (重点补充): “如果目标是数据库或项目,则可以直接从Schema Compare窗口更新目标,或者如果目标是数据库或数据库文件,则可以生成更新脚本 。 ” 您描述的行为似乎是功能的工作方式。 但是,如果您可以构建/编译您的项目,这将生成.dacpac文件 (也称为数据库文件),您可以使用模式比较来比较和生成脚本,或者它出现SSDT的命令行版本(sqlpackage.exe) )似乎支持.dacpac的源和目标。 希望有所帮助。 According to Micr ...