码迷,mamicode.com
首页 > Web开发 > 详细

《大型网站技术架构》学习笔记

时间:2018-05-06 22:55:50      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:软件   分布式文件系统   发展历程   str   环境   新版   方式   技术架构   系统   

第一章: 大型网站的演化

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

  高并发, 大流量

  高可用:7*24小时不间断服务

  海量数据

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

  安全环境恶劣:大型网站几乎每天都被攻击

  需求快速变更, 发布频繁:大型网站每周都有新版本上线

  渐进式发展:大型网站都从小网站发展而来

 

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

初始阶段的网站架构

  只用一台服务器。

 

应用服务和数据服务分离

  分出了应用, 数据, 文件三台服务器.

  应用服务器要处理大量的业务, 所以需要更快更强的CPU.

  数据服务器快速磁盘检索和数据缓存, 需要更快的硬盘和大内存

  文件服务器用于存储用户的文件, 需要更大的硬盘

 

使用缓存改善网站性能

  大部分业务访问集中在一小部分数据上。

  本地缓存:速度快,受应用服务器内存限制

  分布式缓存服务器(集群):使用大内存服务器

 

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

  通过持续增加应用服务器的方式来改善负载压力, 实现系统的可伸缩性。

  通过负载均衡调度服务器,将访问请求分发到应用服务器集群的任意一台服务器。

 

数据库的读写分离

  使用缓存后,少部分读和全部写还是要访问数据库

  配置主从数据库. 应用服务器要写数据时, 访问主数据库. 主数据库通过主从复制机制将数据更新同步到从数据库.

 

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

  基本原理都是缓存. 区别在于CDN部署在网络提供商机房中. 而反向代理部署在网站机房中.

  如果反向代理服务器缓存着用户请求的资源,则直接返回给用户,降低了服务器的压力。

  目的都是为了尽早返回数据给用户。

 

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

  通常使用业务分库,将不同业务的数据部署在不同的服务器上。

  单表规模非常庞大时,才使用分布式数据库。

 

使用NoSQL和搜索引擎

  通过一个统一的数据层访问各种数据, 减轻应用程序管理诸多数据库的麻烦。

 

业务拆分

  将整个网站业务拆分成不同的产品线。

  大型购物网站会将首页,商铺,订单,买家,卖家分成不同的产品线,由不同的团队负责。

 

分布式服务

  比如用户管理,商品管理这些业务,可以将共用的业务提取出来,独立部署

《大型网站技术架构》学习笔记

标签:软件   分布式文件系统   发展历程   str   环境   新版   方式   技术架构   系统   

原文地址:https://www.cnblogs.com/mengchunchen/p/9000110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!