接着上篇文章 百亿级流量实时分析统计 - 数据结构设计 咱们已经设计好了日志的结构,接下来咱们就准备要开始撸代码了,我最喜欢这部分的环节了,但是一个上来连就撸代码的程序确定不是好程序员,要不先设计设计流程图?那来吧!!! nginx
rsync
把节点上的日志同步到日志中心。ETL
程序,将要对日志中心上全部节点的数据进行抽取转换加载。Mysql
?由于咱们要更细粒度地控制日志的写入时间点,主要用来记录日志时间的offset,后续会有详细的介绍。nginx
直接将日志写入kafka,由于nginx
也是生产级别的。日志中心的存储会是下面这样程序员
├── log
│ ├── 2019-03-21
│ │ ├── 111.12.32.11
│ │ │ ├── 10_01.log
│ │ │ └── 10_02.log
│ │ ├── 222.22.123.123
│ │ │ ├── 0_01.log
│ │ │ ├── 0_02.log
│ │ │ └── 0_03.log
│ │ └── 33.44.55.11
│ ├── 2019-03-22
│ └── 2019-03-23
复制代码
日志内容以下sql
{"time":1553269361115,"data":{"type": "read","aid":"10000","uid":"4229d691b07b13341da53f17ab9f2416","tid": "49f68a5c8493ec2c0bf489821c21fc3b","ip": "22.22.22.22"}}
{"time":1553269371115,"data":{"type": "comment","content":"666,支持一下","aid":"10000","uid":"4229d691b07b13341da53f17ab9f2416","tid": "49f68a5c8493ec2c0bf489821c21fc3b","ip": "22.22.22.22"}}
复制代码
选择设计一 由于咱们就看上了第5点,在线上业务稳定了一年的使用状况来看,这种方案是可行的。bash
在下篇文章中,咱们将真实开始撸咱们的黄金代码了,全部程序将使用scala
进行实现,你想问我什么吗?四个字: 服务器