影响一个大型网站所需服务器数量的因素很多

影响一个大型网站所需服务器数量的因素很多

影响一个大型网站所需服务器数量的因素很多

对于最基础的网站源代码,如果一个技术高超的程序员能实现最好的算法,那么几台服务器就能完成一个拥有数千万并发量的网站。相反,对于低水平的程序员来说,即使几十万台服务器也只能完成几万个并发网站。对于随意需要成百上千台服务器的网站,程序员素质很低,架构师水平极低。

其次,业务量越大,网站的整体结构就会越复杂。我们看到的网站只是冰山一角,有成千上万的系统支持。服务器的评估需要根据不同业务系统的特点进行分析。

(1) 新闻等服务不复杂的普通网站,交互容易,以展示为主,所以即使PV很大,也不会需要很多机器。单台nginx服务器可以处理静态页面,可以达到几千甚至几万QPS(当然这只是一个理论值,考虑到页面大小和宽带等因素是达不到的)。

(2) 业务复杂的系统,如携程, 京东, 淘宝等。复杂的用户交互、存储、支付、第三方沟通等。

再加上保证系统稳定性和支持容灾,将会成倍增加机器的需求。分析系统,对比业务复杂度,然后对比机器数量更有可比性。此外,机器配置也有好有坏,新服务器的性能可能是旧机器的几倍甚至十倍。再者,什么样的网站才算大?

假设2M带宽,它可以在线承载10,000个IP。网页大概60K,一般人的等待耐心是3到5秒。按3秒计算,每个网页占用的带宽约为20K/S2M=2048K2048/20=103。如果是5秒计算,200个人可以同时触发。如果页面文件很小,以此类推。用2M带宽支持300人在线基本没问题。如果每秒300人可以同时触发,那么每分钟就有1.8万人,低至每秒10人。它每分钟还能载600人。按照一般20分钟SESSION故障计算,它也有12000人的承载能力。这种网站可以同时承受1000W人在线,基本可以算是中型网站。如新浪, 雅虎,校区、qq等。

可以算是大型网站。像官网这样的中小企业都是小企业。任何一个大型网站都是经历用户积累,然后成长的。只有一台服务器对多台服务器才能支持网站的现有数据、用户和页面请求。大型网站(如淘宝, 京东,等)的系统架构。)不具备高性能、高可用性、安全性等完整特征。它总是随着用户的增加和业务功能的扩展而不断进化和完善。在这个过程中,开发模式、技术架构、设计思路也发生了很大的变化,甚至技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的拓展而完善的,不是一蹴而就的;不同业务特性的系统会有自己的侧重点。例如,在淘宝,需要解决搜索、下单和支付海量商品信息的问题。

例如,在腾讯,需要解决数亿用户的实时消息传输问题,而在百度,则需要处理大量的搜索请求。他们都有自己的业务特点和不同的系统架构。

1.如果一个网站访问量小,比如一个小公司的小论坛,可能只有几个人同时在线,稳定性和安全性要求相对较低,那么配置差的服务器就足够了,数据库和应用服务器都在上面;

2.再大一点,考虑到数据库服务器和应用服务器的分离,每个服务器都设置好了,可以再增加一个服务器,把静态请求和动态请求分开;

3.当一个应用服务在高峰期举步维艰,严重影响访问质量时,可以考虑增加一个应用服务器进行负载均衡,分散压力的同时提高稳定性。如果一个应用服务器宕机,还有一个应用服务器响应请求(前提是可以完成负载均衡,所有请求都会交给另一个);

4.如果安全要求高,就不能有数据丢失,尤其是涉及到钱的问题,数据库需要备份,那么数据库主从都可以做,主机停机时会自动切换到从机;

5.如果访问量持续增加,大量数据被频繁读取,相对较少被写入,这部分数据可以分离出来缓存到专门的服务器,比如Memcache和Redis缓存服务器,可以大大减轻数据库读写的压力。这是一种非常有效的解压方法;

6.如果部署N个缓存服务器后数据库仍然有压力,可以考虑读取数据库的写分李,一个主服务器写,N个从服务器读。当然,你必须做好数据同步;

影响一个大型网站所需服务器数量的因素很多

7.如果网站有大量图片或文件需要管理,则需要添加图片服务器或文件系统服务器。这些服务器通常是分布式应用,比如Hadoop,可以使用N个服务器进行部署;

8.如果瞬时流量极大,请求数量达到一定数量级,后台服务还是很难的,我们对实时响应有一般要求,可以增加N个消息队列服务器进行缓冲;

9.然后是上述服务器的大规模集群。它可以大到n。有些巨头有几十万甚至几百万台服务器。几年前,谷歌有250万台服务器。