网站架构学习(一)之架构演化

来源:互联网 发布:朝鲜留学生在中国 知乎 编辑:程序博客网 时间:2024/05/29 19:17

数据库读写分离

(改善数据库负载压力)
主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明。
写操作在主数据库上,读操作在从数据上。

使用反向代理和CDN加速

基本原理都是缓存。区别在于CDN部署在网络提供商的机房,在用户请求网站的服务时,可以从距离自己很近的网络提供商机房获取数据。反向代理部署在网站的中心机房,当用户请求到达中心机房,首先访问的是反向代理服务器,查看是否有缓存,如果有直接返还给用户。

这么做,无非是想尽快给用户数据,减少服务器负担。

是用NoSQL和搜索引擎

随着业务慢慢复杂起来,对数据存储和检索的需求也复杂起来。nosql和搜索引擎对可伸缩的分布式特性具有更好的支持。应用服务器通过统一的数据访问模块访问各种数据,减轻应用程序管理很多很多数据源的麻烦。

业务拆分

将网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发。