网站架构演化历史
网站的概念与分类
网站是指在因特网上根据一定的规则,使用HTML等工具制作的用于展示指定内容相关网页的集合。
- 网站按照作用可以分为3种:内容性网站、服务型网站、电子商务型网站
- 这几个分类不是绝对的,可以有交叉,一个网站既可以是内容型的也可以是服务型的
大型网站系统的特点
- 高并发,大流量
- 高可用
- 海量数据
- 用户分布广,网络复杂
- 安全环境恶劣
- 需求快速变更,发布频繁
- 渐进式发展
大型网站架构演化历程
-
单机网站:初始阶段的网站架构
应用程序、数据库、文件等所有资源都在一台服务器上。
常见的架构是大名鼎鼎的:LAMP(Linux+apache+mysql+php) -
单机负载告警,应用服务与数据服务分离
-
数据库压力太大导致访问延迟,使用缓存改善网站性能
-
使用应用服务器集群改善网站的并发处理能力
通过负载均衡调度服务器,可以将来自用户浏览器的访问请求分发到应用服务器集群种的任何一台服务器上。 -
数据库压力变大,数据库读写分离
主写从读,主从复制 -
使用反向代理和CDN加速网站响应
一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力 -
使用分布式文件系统和分布式数据库系统
-
为了弥补关系型数据库的不足,使用NoSQL和搜索引擎
-
业务拆分:分割不同产品线,分割不同应用
-
分布式服务调用
大型网站常用技术
- 负载均衡服务器
- 缓存服务器
- 文件服务器
- 搜索服务器
- web服务器
- 消息队列服务器
- 索引服务器
- 作业服务器
网站群架构演化历史
网站群
通过统一标准、统一规范、统一规划,建立在统一技术架构基础上的若干个能互相共享信息、按照一定的隶属关系组织在一起,既可以统一管理,也可以独立管理自成体系的网站集合。
网站群发展历史
第一代:自然网站群
此阶段的特点是未经规划,自然形成,各自独立
第二代:管理网站群
此阶段的网站群的特点是外表统一,但信息孤立、无法统一管理
第三代:整合网站群
信息不能充分共享、不能统一管理、不能统一升级网站后台、不能做到整个网站群的联合全文检索
第四代:内容管理网站群
利用网站群内容管理系统,统一规划、统一实施或分布实施,以解决第三代网站群存在的缺陷。
第五代:动态内容管理群
在解决了传统的网站来编发管理、站群管理的基础上,提供了丰富的个性化在线服务构建功能与公众交互功能
第六代:集约化网站群
基于顶层设计,技术统一、功能统一、架构统一、资源向上归集的一站式、面向多服务对象、多渠道(PC、网站、移动客户端等)、多层级、多部门政府门户网站群平台。
网站群建设原则
- 安全性
- 可靠性
- 可扩展性
- 标准型、开放性
网站群建设需要解决的问题
网站群基础架构:
- 展现层:网站的展示页面
- 应用层:指服务端的业务应用,通过不同的业务模块实现不同的功能,分发到不同的展现层展现
- 支撑层:主要为应用层提供数据支撑
- 基础层:多为操作系统、数据库、中间件等基础服务
要实现同域单点登录需要解决两个问题:
- Cookie是不能跨域的,即在请求其它域名时,是无法携带的
- 每个子域名下的Session是分别存储到各自应用中,是不同步的
spring session可以在一定程度上解决
跨域单点登录,解决使用CAS(Yala大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法)
智能域名解析定义:指域名解析服务器根据来访者IP类型,对同一域名作出相应不同解析。
负载均衡是高可用网络基础架构的一个关键组成部分。