目前遇到一个关于电视广告计费问题,详细如下:
一、需求简单概括为:一则广告可以被播放多少次(根据$决定),超过次数则不能再播放。目前前端多台应用服务器通过均衡器转发,需要解决播放次数准确计数。
二、遇到的瓶颈为:
1、如果使用一台Redis做次数统计,前端10台应用服务器对一台Redis压力过大。
2、大量客户端(国外网络电视)正在播放某部非常热门电视栏目时候,大量的广告请求导致后端压力异常巨大,目前预估计高压情况下实时请求数为50w-70w。
3、由于每个客户端看到的广告可能不一样,所以不能预先编排。
4、由于是电视机原因,窗口排队等机制可能不是很好,一般要求3s内返回。
求各位给个思路
仅是个人观点,给你参考一下
把银行业账务清算的概念纳入进你的电视广告计费系统中,解决高并发设计问题,方法是:
比如规定一个小时清算一次(如果实时控制要求高可以设置几分中清算一次),在一小时内,非清算状态下,客户端自己记录播放广告的次数,清算时,服务器轮询,或者客户端主动报送,上个小时内的播放次数数据。由服务端汇总。这样就把即时压力,分摊开来,从而解决了高并发问题。
一个清算场次内的数据,可以压缩上报,也能解决网络峰值压力。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。