大型网站架构设计系列
2009-12-05 17:57
435 查看
1、 数据结构和产品架构设计,这是基础! 2、 角色分开,各司其职(web服务器,缓存服务器,负载平衡,数据库等) 3、 HTML静态化(用缓存服务器也可) 4、 图片服务器分离,且使用lighttpd等轻量级服务器 5、 数据库集群和库表散列 6、 缓存。 a)架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的mod_proxy缓存模块,也可以使用外加的Squid进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。 b)网站程序开发方面的缓存,Linux上提供的Memcached是常用的缓存方案,不少web编程语言都提供memcache访问接口,php、perl、c和java都有,可以在web开发中使用,可以实时或者Cron的把数据、对象等内容进行缓存,策略非常灵活。一些大型社区使用了这样的架构。各种语言基本都有自己的缓存模块和方法。 7、 镜像。有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。(多个服务器,youtube就是用rsync同步的) 8、 负载均衡。 a) 硬件四层交换。比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。 b) 软件四层交换。可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少 c) 一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。 9、 常用方式。前层的反向代理加速―Web Server―Cache Server―DB。而负载均衡的方式也使用了如DNS轮循或部分硬件负载均衡设备来承担大流量.(DIY也未尝不可,一台1U的IA32硬件设备, 板子需要是为fw,switch设计的, 使用FreeBSDϖ作系统, 主要是FS和slab的改写会是技术活)。做Web 加速和代理的软件如Lighttpd, Nginx,HAproxy.(可以不用考虑了,配置不好,不能很好的表现)压缩工具BMDiff 和 Zippy(google就用了这两种技术,主要用于压缩网页数据,压缩比达到10:1――估计是存档数据,不是运算数据) 10、 选择ISP注意其地区带宽分布是否平衡一致;区域DNS是否优化等 11、 其他: a) 缓存,包括CND还是比较昂贵的,在确定缓存时要根据不同内容的访问频度进行划分,特别是注意观察缓存的命中率,如果不能达到50%以上就有问题了 b)log是所有性能调试的起点,从development log到production log,从rails log到web server log,不同的log有不同的侧重点,学会分析log,每个log都可能为你提供解决问题的蛛丝马迹。另外,要熟练使用benchmark结合log做profiling,当real time远大于db time + rendering time的时候,这点尤其重要。 |
相关文章推荐
- 大型网站架构系列之三,多对多关系的优化设计
- 大型网站架构系列之四,缓存策略设计概要
- 推荐:大型网站架构设计系列--某人的总结
- 疯狂代码,大型网站架构系列之三,多对多关系的优化设计
- [架构] 大型网站架构系列之三 ---------------- 多对多关系的优化设计
- 大型网站架构系列之三,多对多关系的优化设计
- [架构] 大型网站架构系列之三 ---------------- 多对多关系的优化设计
- 大型网站架构系列之四,多对多关系的以及并发缓存的设计
- 大型网站架构设计系列总结
- 大型网站架构系列之五,缓存策略设计概要
- 大型网站架构系列:20本技术书籍推荐
- 大型网站架构设计及技术总结
- 大型网站架构系列:分布式消息队列(一)
- 我也要谈谈大型网站架构之系列(2)——纵观历史演变(下)
- 大型网站架构系列:负载均衡详解(1)
- 大型网站架构系列:缓存在分布式系统中的应用(三)
- (转)高并发高流量的大型网站架构设计(二)
- 大型网站架构系列:分布式消息队列(一) (转)
- 大型网站架构系列:电商网站架构案例
- 大型网站的架构设计问题----大型高并发高负载网站的系统架构