Nothing is impossible for a willing heart

2016-12-03
亿级app活跃设备数新增留存率统计实现

概述

最近两个月一直在做用户行为分析统计,期间多次对实现方案进行调整优化,走了很多弯路,总体目标力求简单粗暴!当然,这段时间生活也变得异常充实,几乎到了”寝食难安”的地步,晚上睡觉在想解决方案,有时想到方案会立刻起来测试。总体来说,两点体会。

  1. 基本上没有什么问题是无法解决的,区别在于实现的是否足够优雅!
  2. 如果你担心某个问题会发生,不要心存侥幸,它一定会发生!

闲言少叙,书归正传!
ps: 作为第三方apm提供商,是没有权限获取某个用户在该app的注册信息的。因此,这里的用户分析概念仅针对用户手持设备如手机而言. 直接看架构设计

亿级app活跃设备数新增留存率统计实现
Read More

2016-08-11
Java SPI机制

乱叙

将近一年没有更新博客,越来越懒了! 这一年分别折腾了kafka、druid、hawq、dubbo、flume等等,但基本都是浅尝辄止。其中kafka、dubbo、flume已经应用到生产环境中,最近准备尝试下GreenPlum

对于SPI,是最近在看dubbo源码时了解到其强大的扩展机制正是基于JAVA SPI来实现的。说来惭愧,因为dubbo才知道的SPI。 感兴趣的话,只需几分钟你便能学会如何使用SPI.参考Java spi机制浅谈

Java SPI机制
Read More

2015-09-22
FLUME 小结

What’s Flume?

Flume是Cloudera提供的一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本。经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。

Flume 使用 java 编写,其需要运行在 Java1.6 或更高版本之上,本文基于Flume NG 1.6.0
官方网站:http://flume.apache.org/
用户文档:http://flume.apache.org/FlumeUserGuide.html
开发文档:http://flume.apache.org/FlumeDeveloperGuide.html
Flume API: http://flume.apache.org/releases/content/1.6.0/apidocs/index.html

FLUME 小结
Read More

2015-06-01
SAMZA CONTAINER

Samza Container

SamzaContainer,负责管理一个或多个StreamTask实例的启动、执行以及关闭。每个SamzaContainer会单独运行在一个JAVA虚拟机之上,也就是说一个SamazaContainer即是一个JAVA进程!一个Samza任务可能由多个SamzaContainer组成,并且这些SamzaContainer可能运行在多个机器节点之上。
当SamzaContainer启动时,它执行以下操作:

SAMZA CONTAINER
Read More