大型网站架构技术一览
网站系统架构层次如下图所示:
1、 前端架构
前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。
(1) 浏览器优化技术;
(2) CDN;
(3) 动静分离,静态资源独立部署;
(4) 图片服务;
(5) 反向代理;
(6) DNS:域名服务,将域名解析成IP地址,利用DNS可以实现DNS负载均衡,配置CDN也需要修改DNS,使域名解析后指向CDN服务器。
2、 应用层架构
应用层是处理网站主要业务逻辑的地方
(1) 开发框架;
(2) 页面渲染;
(3) 负载均衡;
(4) Session管理;
(5) 动态页面静态化;
(6) 业务拆分;
(7) 虚拟化服务器;
3、 服务层架构
提供基础服务,供应用层调用,完成网站业务。
(1) 分布式消息:利用消息队列机制,实现业务与业务、业务和服务之间的异步消息发送及低耦合的业务关系;
(2) 分布式服务;提供高性能、低耦合、易复用、易管理的分布式服务,在网站实现面向服务架构(SOA);
(3) 分布式缓存:通过可伸缩的服务器集群提供大规模热点数据的缓存服务,是网站性能优化的重要手段;
(4) 分布式配置;
4、 存储层架构
提供数据、文件的持久化存储访问与管理服务。
(1) 分布式文件;
(2) 关系数据库;
(3) NoSQL数据库;
(4) 数据同步;
5、 后台架构
网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理。
(1) 搜索引擎:即使是网站内部的搜索引擎,也需要进行数据增量更新及全量更新、构建索引等。这些操作通过后台系统定时执行;
(2) 数据仓库:根据离线数据,提供数据分析与数据挖掘服务;
(3) 推荐系统:社交网站及购物网站通过挖掘任何人之间的关系,任何商品之间的关系,发觉潜在的人际关系和购物兴趣,为用户提供个性化推荐服务;
6、 数据采集与监控
监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障。
(1) 浏览器数据采集:通过在网站页面中嵌入JS脚本采集用户浏览器环境与操作记录,分析用户行为;
(2) 服务器业务数据采集:服务器业务数据包括两种,一种是采集在服务端记录的用户请求操作日志;一种是采集应用程序运行期业务数据,比如待处理消息数目等;
(3) 服务器性能数据采集;
(4) 系统监控;
(5) 系统报警;
7、 安全架构
保护网站免遭攻击及敏感信息泄露。
(1) Web攻击;
(2) 数据保护;
8、 数据中心机房架构
大型网站需要的服务器规模数以万计,机房物理架构也需要关注。
(1) 机房架构
(2) 机柜架构
(3) 服务器架构