大并发量上报或者实时上报的实现方式
来源:互联网 发布:淘宝分享有赏在哪里 编辑:程序博客网 时间:2024/04/27 22:58
大并发量上报或者实时上报的实现方式
在客户端应用里面,会对很多用户的行为进行上报,例如哪个位置查看比较多,哪个tab点击人数,这些都是经常需要上报的对象。
如果需要详细的调查用户行为,有可能一个客户端一次上报的记录就几十条,这种情况下,假设有10000000的用户同时在线,那么上报的记录可能一小时就有几亿条,这个记录是非常巨大的。
所以,这个记录的性能不容忽视,必须要有强大的性能支撑,才能保证log记录准确,特别是一些广告的展示,必须做到尽量少的误差,否则影响的就是公司的收入了。
1. 使用nginx记录,不走任何cgi形式:
把每次上报的格式绘制成固定的url格式,在nginx配置成特定location,返回404,这样就可以拿到access log,而且只走nginx的效率相对来说是比较高的,至少比cgi要高很多倍。
如果为了不让识别,可以加密后,在分析的时候把param解密。
2. 分服务器:
如果上传数量很大,并发很高,一台nginx都支撑不了,那么就把上传的模块分离,分到多台nginx上去。
3. 分模块:
根据不同的模块,分成不同的文件夹,以及文件,这样子减少分析压力。
4. 合并上传:
假如1s内有很多地方的log要上传,那么可以一次性把这1s内log合并以后再上传,减少请求数量
5. 增大上传间隔:
间隔越大,负载越低,这是必然的。但是很多时候需要实时汇报,但是使用上面方式的话,估计1台强劲的nginx就可以处理这上亿/小时的请求了
6.禁用http的keepalive
如果开启了keepalive,每个连接不马上中断,高并发上报,会导致连接数很高,然后nginx都会出现500错误。
7.定时压缩日志
高并发下,日志必然很多,为了减少存储空间,每天跑定时压缩日志。
- 大并发量上报或者实时上报的实现方式
- C# 实现 FTP 上报
- 谷歌分析中流量日志上报
- 数据上报-上报设计
- FineReport实现java报表多级上报的效果图
- C#实现两个数据库之间的数据上报
- iOS6的framework运行在iOS5或者以下版本机器上报错的解决办法
- 链式上报
- 职业病上报
- 脚本错误量极致优化-监控上报与Script error
- 输入子系统多点协议上报机制实现
- 树莓派通过邮件上报实时IP,随时随地远程登录树莓派
- 恶心的“定点上报调度”机制!
- 上报和分发消息的流程
- wsus没法上报的处理办法
- linux电源管理的uevent上报
- 上报和分发消息的流程
- 上报和分发消息的流程
- 点击一个图片(imageview)后的手势
- ubuntu 安装aliwangwang
- linux文件合并去重
- three20搭建
- 如何在腾讯云平台里搭建vpn连接本地局域网
- 大并发量上报或者实时上报的实现方式
- oracle11g远程连接报ORA-12541错误
- 编程学习(六)----c++数据类型(一)
- 多线程编程1 基础
- My97DatePicker控件显示时分秒
- 如果从ORACLE导出批量数据以EXCEL格式.
- 当程序崩溃的时候怎么办 part-1
- HBITMAP 与 CBitmap 、BITMAP、HDIB
- BuildPath引起的问题