大型网络架构学习心得

前言:
在互联网跨越式发展的进程中,在电子商务火热的市场背后却是不堪重负的网站架构,某些B2C网站逢促销必宕机几乎成为一种规律,铁路部电子客票官方购票网站的频繁故障和操作延迟更将这一现象演绎的淋漓尽致。
一边是企业在网站技术上的大量投入,一边却是网站在关键时刻的频繁宕机;如何打造一个高可用,高性能,易扩展,可伸缩且安全的网站?

1.大型网站软件系统的特点

高并发,大流量,高可用,海量数据,用户分布广泛,网络情况复杂,安全环境恶劣,需求快速变更,发布频繁,渐进式发展。

2.大型网站架构演化发展历程

大型网站都是从小型网站发展而来,网站架构也一样,是从小型网站架构逐步演化而来。

2.1初始阶段的网站架构

应用程序,数据库,文件等所有的资源都在一台服务器上,汇集各种免费开源软件及一台廉价服务器就可以开始网站的发展之路了。
大型网络架构学习心得_第1张图片

2.2应用服务器和数据库服务分离

随着网站业务的发展一台服务器逐渐不能满足需求,这三台服务器硬件资源的要求各不相同;
应用服务器:需要处理大量的业务逻辑,因此需要更快更强大的CPU。
数据库服务器:需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存。
文件服务器:需要存储大量用户上传的文件,因此需要更大的硬盘。
大型网络架构学习心得_第2张图片

2.3 使用缓存改善网站性能

网站使用的缓存分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存
本地缓存:速度快,受应用服务器内存限制,会和应用程序争抢资源。
远程缓存:理论上不受内存容量限制。
大型网络架构学习心得_第3张图片

2.4应用服务器集群

通过负载均衡调度服务器,可将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈。
大型网络架构学习心得_第4张图片

2.5数据库读写分离

网站在使用缓存后,绝大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中,缓存过期)和全部的写操作都需要访问数据库,数据库因为负载压力过高而成为网站的瓶颈
主流数据库都能提供主从热备功能,通过配置两台数据库主从配置,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离。

大型网络架构学习心得_第5张图片

2.6使用反向代理和CDN加速网站响应

不同地区的用户访问网站时,速度差别也极大,需要加速网站访问速度。
CDN和反向代理的基本原理都是缓存。
CDN:部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据
反向代理:部署在网站的中心机房,当用户请求到达中心机房后,首先访问的是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户
大型网络架构学习心得_第6张图片

2.7使用分布式文件系统和分布式数据库系统

随着持续增长的业务需求。数据库和文件系统的负载也将达到瓶颈,这时需要分布式数据库。文件系统也需要分布式文件系统。

大型网络架构学习心得_第7张图片

2.8使用NoSQL和搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求越来越复杂,网站需要采用一些非关系数据库如NoSQL和非数据库查询技术如搜索引擎。

大型网络架构学习心得_第8张图片

2.9业务拆分

为了应对日渐复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线

大型网络架构学习心得_第9张图片

2.10分布式服务

每一个应用系统都需要执行许多相同的业务操作,比如用户管理,商品管理等,那么可以将这些共用的业务提取出来,独立部署。
大型网络架构学习心得_第10张图片

你可能感兴趣的:(大型网络架构学习心得)