PHP

大型网站技术架构-入门梳理[转]

2017-02-08  本文已影响40人  Gundy_

罗列了大型网站架构涉及到的概念,附上了简单说明

前言

概述

演化历程

图例可参考 大型网站架构演化历程

  1. 初始阶段的网站架构:一台服务器,上面同时拥有应用程序,数据库,文件,等所有资源。例如 LAMP 架构
  2. 应用和数据服务分离:三台服务器(硬件资源各不相同),分别是应用服务器,文件服务器和数据库服务器
  3. 使用缓存改善网站性能:分为两种,缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器的远程缓存
  4. 使用应用服务器集群改善网站并发处理能力:通过负载均衡调度服务器来将访问请求分发到应用服务器集群中的任何一台机器
  5. 数据库读写分离:数据库采用主从热备,应用服务器在写数据时访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库。应用服务器使用专门的数据访问模块从而对应用透明
  6. 使用反向代理和 CDN 加速网站响应:这两者基本原理都是缓存。反向代理部署在网站的中心机房,CDN 部署在网络提供商的机房
  7. 使用分布式文件系统和分布式数据库系统:数据库拆分的最后手段,更常用的是业务分库
  8. 使用 NoSQL 和搜索引擎:对可伸缩的分布式有更好的支持
  9. 业务拆分:将整个网站业务拆分成不同的应用,每个应用独立部署维护,应用之间通过超链接建立联系/消息队列进行数据分发/访问同一数据存储系统
  10. 分布式服务:公共业务提取出来独立部署


演化的价值观

误区

架构模式

模式的关键在于模式的可重复性

核心要素

架构是“最高层次的规划,难以改变的规定”。主要关注五个要素:

架构

下面依次对这五个要素进行归纳

高性能

性能的测试指标主要有:

性能测试方法:

性能优化,根据网站分层架构,可以分为三大类:

高可用
伸缩性

大型网站的“大型”是指:

伸缩性的分为如下几个方面

可扩展

系统架构设计层面的“开闭原则”

网站的安全架构

XSS 攻击和 SQL 注入攻击是构成网站应用攻击最主要的两种手段,此外还包括 CSRF,Session 劫持等手段。

上一篇下一篇

猜你喜欢

热点阅读