要顶住2万并发用户
要购买多少台SLB,多少台ESC,多少台DRDS,多少台Redis,多少台OSS,多少个CDN包?
另外软件架构要用什么架构才能合理、充分利用上硬件资源,并且后期能够方便的、 通过拓展硬件资源、 支持更大的并发量?
说实话,我也不知道。只能大概估算一下。
假设购买下面的硬件资源:
负载均衡SLB:
用下面的ESC 配置
下面的DRDS:
下面的Redis:
静态存储OSS:
CDN:
2万并发,假设每个网页大小为1M大小。
那么2万的数据量为20000*1M=20G 的流量
20G的流量如果完全静态化,那么压力基本在CDN+静态存储OSS上。如果这样,CDN 一天的流量=20G*86400秒=1728000G
(老天,即便并发时间只有万分之一,也需要17.28G流量!按上面的500G半年的CDN,一个月用光了。)
这种做法,就是完全依赖CDN,拦住大部分用户的请求。
如果部分静态化,比如只把HTML,JS,CSS,图片,字体放到CDN。 用户的AJAX请求还是后台处理,那是不是少了很多呢?(感觉JSON数据也不大,最多也能省10%的数据量)
那如果静态化不放CDN,全部放在OSS上,是否可以?(感觉这样,OSS就是瓶颈了)
如果把HTML,JS,CSS,图片,字体放到OSS,JSON请求ECS Web服务,那是不是更好?
考虑省钱方案,还是CDN+OSS+Redis方案
1、HTML,JS,CSS,图片,字体放到CDN
2、HTML,JS,CSS,图片,字体也放到OSS
3、HTML,JS,CSS,图片,字体也放到ECS
4、CDN流量用光,就由Nginx 合理安排 去找OSS资源还是本地ECS资源
5、JSON数据存在Redis,也存放在ECS,Web 服务器自动维护 请求本地还是Redis 应对高并发
网络架构图如下:
软件框架图如下:
本帖问题目前还在探索中,目前购买的硬件数量都只是一台 (ECS2台除外)