《大型网站技术架构_核心原理与案例分析》阅读笔记01
在互联网跨越式发展的进程中,在电子商务火热的市场背后却是不堪重负的网站架构,某些B2C网站逢促销必宕机几乎成为一种规律,而铁道部电子客票官方购票网站的频繁故障和操作延迟更将这一现象演绎的淋漓尽致。互联网业务快速发展多领域挑战传统行业,但网站安全漏洞频发让网民胆战心惊怨声载道。而与传统企业应用系统相比,大型网站软件系统有以下特点:高并发,大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展。
大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手。而现在的大型网站都是从小型网站开发而来,网站架构也是一样,是从小型网站架构逐步演化而来。小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余。应用程序、数据库、文件等所有的资源都在一台服务器上。而随着网站业务的发展,一 台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时就需要将应用和数据分离。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器。这三台服务器对硬件资源的要求各不相同,应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU; 数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存;文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘。逐渐的,开始使用服务器集群改善网站的并发处理能力,数据库读写也逐渐分离,使用分布式文件系统和分布式数据库系统,从而达到现在的分布式服务。
时至今日,大型网站的架构演化方案已经非常成熟,各种技术方案也逐渐产品化。许多小型网站已经慢慢不需要再经历大型网站经历过的架构演化之路就可以逐步发展壮大,因为现在越来越多的网站从建立之初就是搭建在大型网站提供的云计算服务基础之上,所需要的一切技术资源:计算、存储、网络都可以按需购买,线性伸缩,不需要自己一点一点地拼凑各种资源,综合使用各种技术方案逐步去完善自己的网站架构了。
每一个模式在描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。
关于网站架构模式,为了解决大型网站面临的高并发访问、海量数据处理、高可靠运行等一些列问题与挑战,大型互联网公司在实践中提出了许多解决方案,以实现网站高兴能、高可用、易伸缩、可扩展、安全等各种技术架构目标。