大型网站架构设计系列总结

简介:
大型网站架构设计系列-我的总结如下:
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的时候,这点尤其重要。



本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/425941,如需转载请自行联系原作者

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
缓存 NoSQL 应用服务中间件
性能基础之大型网站架构演化(整理篇)
【2月更文挑战第14天】性能基础之大型网站架构演化(整理篇)
45 1
性能基础之大型网站架构演化(整理篇)
|
7月前
|
缓存 负载均衡 应用服务中间件
大型网站技术架构(一)——大型网站架构演化
大型网站技术架构(一)——大型网站架构演化
|
架构师 程序员 微服务
|
消息中间件 编解码 分布式计算
10年程序员了竟然不懂大型网站架构技术细节:云计算服务工作原理
云计算服务的工作原理 在讨论云计算服务架构之前,先介绍云计算服务的应用场景,然后介绍其开发语言及框架,之后再讲解云计算服务的工作原理。在了解了云计算服务的工作原理之后,我们才能更好地理解云计算服务架构需要关注的细节。
|
消息中间件 存储 缓存
读书笔记 之《软件架构设计: 大型网站技术架构与业务架构融合之道》
帅哥美女,知道你们时间宝贵,那么就由小菜为你读好一本书,读一本好书,取其精华,与你共享~!今天带来的是 《软件架构设计:大型网站技术架构与业务架构融合之道》 的读书笔记
432 0
读书笔记 之《软件架构设计: 大型网站技术架构与业务架构融合之道》
|
缓存 负载均衡 NoSQL
|
数据库 图形学 搜索推荐
|
缓存 应用服务中间件 数据库