大型网站技术架构,网站架构演变历程上

正在看《大型网站技术架构:核心原理与案例分析》,以前有大佬推荐过,但是一直没读,这次一口气读了前两篇,觉得这本书写的很好,是对大型网站架构理论性知识普及。

我觉得,对分布式开发或者架构设计很有启发和参考的价值。

但是由于书中大多都是理论的抛砖引玉,看一遍不够,只看也不够,所以觉得最好的方式是,记笔记,自己亲自画书中的架构图。

第一篇 概述

1 大型网站架构演化

1.1 大型网站软件系统的特点

高并发,大流量

高可用

海量数据

用户分步广泛,网络情况复杂

安全环境恶劣:黑客攻击,密码泄露

需求快速变更,发布频繁

渐进式发展

1.2 大型网站架构演化历程

1.2.1 初始阶段的网站架构

应用程序、文件服务、数据库都部署在一台服务器上

1.2.2 应用服务和数据服务分离

应用服务器、数据库、文件服务器分别部署在不同的机器,不同特性的服务器承担不同的角色

1.2.3 使用缓存改善网站架构

由于部分的业务访问集中在一小部分数据上,那么可以将这一小部分数据缓存起来。

网站使用的缓存分为两种:

(1) 缓存在应用服务器本地的本地缓存,访问速度更快,受限于应用服务器内存,争用内存

(2) 缓存在专门的分布式缓存服务器上的远程缓存,集群方式使用,理论上可以做到不受内存限制的缓存服务

 使用缓存后,数据访问压力得到有效缓解,但是单一应用服务器能够处理的请求连接有限,网站访问高峰期,应用服务器称为整个网站的瓶颈。

1.2.4 使用应用服务器集群改善网站的并发处理能力

 

通过应用服务器集群部署,可以通过加入更多的集群服务器使应用服务器可以承载更多的压力,应用服务器的负载压力不再成为整个网站的瓶颈。

1.2.5 数据库读写分离

使用缓存后,大部分读操作可以不通过数据库,而是直接访问到缓存。但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作需要访问数据库在网站用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。

主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新到另一台数据库服务器上。

应用服务器在写数据的时候,访问主库,主库通过主从复制机制将数据更新同步到从库,这样当应用服务器读数据的时候,就可以通过从库获得数据。

为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明。

思考:同步数据由于网络原因会导致同步的延迟,那么我可能更新了数据后,再去查,短时间查不到我刚更新的内容,发生了读写不一致。这个时候怎么办?

作者: 元宝爸爸

出处:https://www.cnblogs.com/wozixiaoyao/p/11965398.html

版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

觉得文章不错,点个关注呗!

原文地址:https://www.cnblogs.com/xinrong2019/p/11412348.html