大型网站涉及到的技术概略

今天晚上听了如鹏网的《大型网站的核心技术揭秘》公开课,将其中对现阶段的我有帮助的概念和听课笔记扔到这里吧。

网站优化的三个方面

  • 网络优化

  • 服务器优化

  • 网站页面优化

主要谈的是服务器和网站页面的优化。

服务器优化

把不同的内容放在不同的服务器上。

服务器集群架构

前端:负载均衡服务器,通过决策将请求分散到不同的 Web 服务器,比如对比 Web 服务器之间的忙碌情况来选择。

然后通过 Web 服务器操作后台的数据库或者是 Session。

Session 也可以做成服务器,这样可以让众多 Web 服务器共享 Session,也可以放在 Redis 上。

反向代理服务器

充当的是中转者的角色,

  • 安全

减少黑客造成的伤害,保护数据安全。

  • 负载均衡

  • 避免慢速用户网络占用服务器资源

分离

  • 上传下载与 Web 服务器分离

  • 静态资源和页面分离

  • 文件服务器和 Web 服务器分离

  • 读写分离

  • 耗资源处理和 Web 服务器分离

  • 数据库分库、分表

SQL Server 对集群分离支持不是很好。

缓存

如果有缓存,那么就不用频繁读写数据库而只需要请求缓存 ( 如果有的话 )。

如果一次用户请求没有查找到缓存,那么重新请求一份,缓存一定的时间,其他访问者在设定的时间内访问就只需访问缓存中的内容而避免向数据库服务器请求。如此循环。

memcached。

网站页面优化

页面静态化

省掉数据库查询操作,缓解服务器压力,同时有利于 CDN 加速。

SHTML

server side include, SSI

服务器一定是 Linux 吗 ?

网站使用到的技术永远都不可能只有一种,几乎都是混合架构。

什么技术更适合,就使用什么技术。

Linux + Ngnix 做前端优化:负载均衡,分流;Windows 可以在后台。

Mono: .net on Linux

JS/CSS 文件压缩

比如变量重新命名。

CSS Sprite

将多张图片合成在一张大图片上,然后通过 CSS 偏移到具体的位置。

CDN

智能 DNS,每个地域的访问者访问到的网站永远都是离他网络距离最近的服务器。

中心服务器、CDN 服务器。

一般的小公司没有自己的 CDN 服务器。

CDN 对动态页面不做优化,都会转到中心服务器,只优化静态资源。

一般而言,CDN 缓存 5 分钟,5 分钟内请求的都是一个内容。

伪静态页面。

.net:做网站、OA、ERP 是主流。

全文搜索

like 是大型网站的数据库杀手。

全文检索的需求:高效率;模糊匹配。

Lucene、Solr:并行搜索。

异步

中间件 -> 队列服务器 ( Redis )。

高并发优化场景

1、 秒杀、抢单

效率低、速度慢。行级锁。

  • 两阶段处理

自由抢,然后排队裁判。

2、 文章阅读数

  • 每条阅读单独记录,然后定时汇总更新阅读数。

  • Redis 缓存后,批量添加到数据库

云计算

一种 “借服务器计算能力” 的概念 ,又需要的时候才去租用。

按需付费,比如买 10w 台服务器一个月的使用期,到期释放。

产品

  • RDS 云数据库。

  • 又拍云。

部署云服务。

总结

概念很重要,代码更重要。

本文最后修改时间: 2015年10月15日 22:37:26 (完) CC BY-NC-ND 3.0

若您发现文章中的错误,并愿告知于我,或想与我交流,我的联系方式在: Contacts


上一篇 Linux 文件解压缩命令

All The Best

下一篇 XML 详细笔记