大并发量上报或者实时上报的实现方式

本文探讨了在大规模并发和实时场景下实现日志上报的方法,包括通过nginx记录、分服务器、分模块、合并上传、增大上传间隔、禁用http keepalive以及定时压缩日志等策略,以确保日志系统的高效稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大并发量上报或者实时上报的实现方式

在客户端应用里面,会对很多用户的行为进行上报,例如哪个位置查看比较多,哪个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台强劲的ngin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zqzhr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值