二、(技术选型与架构设计)亿级用户行为之大数据实时分析
1. 客户端到服务端数据流程(数据从何而来)
1)我们自己可以设定采集时间间隔,比如5分钟或者10分钟采集手机客户端使用应用产生的数据
它会定时采集数据,然后对数据进行合并(减少对系统的压力),然后将数据存入本地数据库。
当我们手机联网的时候,将数据一起发送出去。
2)当手机联网或者到了定时上传数据的时间,客户端会对数据做对称加密(保护用户隐私)
和压缩(减少服务器带宽、流量)
3)然后调用服务器接口上传数据
4)服务器端解压并解密
5)使用log4j写入本地磁盘。主要是为让业务系统与后面采集系统完全解耦。
2. 客户端到服务端数据请求流程
1)当本地数据库中数据达到一定的条数之后或者一定时间之后(取决于我们自己设置的规则)
进行加密、压缩,然后调用api将数据上传至服务器,接着服务器端对数据进行解压,解密,
最后服务器端响应手机客户端已经上传成功,手机客户端收到消息后将本地数据删除
2)如果手机客户端调用api上传数据,发现数据以及上传成功,可能原因:
服务端没有响应
服务端响应超时
那么客户端会认为数据没有发送成功,会重试,重发数据,从而造成数据重复问题
3)我们要对接口服务质量做监控,响应时间、最大响应时间、最小响应时间、平均响应时间。
4)除了监控服务质量,还需要重数据层面进行监控,到第有没有数据重复发送,有多少数据量。
5)通过大数据分析来发现客户端数据是否有问题