架构师:网络构架、服务器构架、应用程序开发;
减少对数据库的连接。
1、In Action
(1)大的并发量如何解决?
负载平衡:Linux LVS技术、Windows NLB技术、F5等负载均衡器、Cisco以太网通道
冗余技术:避免单点故障。集群中只有一个工作,其它都处于休眠状态。
(2)大的数据如何存储?
主从复制、读写分离、分区、集群
(3)网站如何加速?
a、Squid代理缓存技术
Squid cache,即Squid是一个代理服务器和web缓存服务器。
Squid反向缓存——动静分离;
静态数据:
静态页面、图片、flash、css、js文件
分离静态和动态数据:需要使用反向代理Squid解决;缓存静态数据。
b、页面静态化缓存
动态页面静态化,有三种方法:
方法一:
可以使用Apache HTTP服务器的mod_rewrite等,它们是基于正则表达式解析器开发的重写引擎。
方法二:
利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值,生成HTML。
方法三:
使用Ajax方式
c、Memcache:主要用于数据查询;
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的hash表,能存储各种格式的数据,如图像、视频、文件以及数据库检索的结果等。
Memcached以守护程序方式运行于一个或多个服务器中,随时接收客户端的连接和操作。
缺点是:因为数据保存在内存中,很有可能导致数据丢失。
d、Sphinx搜索加速
Sphinx是一个基于SQL的全文检索引擎,可以结合MySqL、PostgreSQL做全文检索,可以提供比数据库更专业的搜索功能。
Sphinx为PHP、Python、Perl、java等设计了搜索API,也为MySQL设计了一个存储引擎插件。
Sphinx单一索引最大可包含1亿条记录。在1千万条记录情况下的查询速度为毫秒级。
搜索引擎有一个很重要的技术——分词、高亮;
(4)服务器,如性能、磁盘、网卡流量如何监控?
2、TIPS
(1)LVS网络负载均衡
(2)Mysql性能优化
(3)Sphinx全文索引
3、PS
(1)
(2)