代码改变世界

阿里云 -- 2万并发用户方案

2016-10-05 11:37  ^战士^  阅读(5864)  评论(0编辑  收藏  举报

要顶住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台除外)