大型网站架构设计系列-我的总结如下:
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的时候,这点尤其重要。
分享到:
相关推荐
该资源包括六个模块,分别是中间件常用组件的原理和设计问题、分布式缓存原理与设计问题、数据库原理与设计问题、分布式技术原理与设计问题、业务系统架构设计问题和高性能高可用设计问题总结。 架构设计面试知识点...
高软-系统架构设计师-考点整理 高软-系统架构设计师-考点整理高软-系统架构设计师-考点整理高软-系统架构设计师-考点整理高软-系统架构设计师-考点整理高软-系统架构设计师-考点整理高软-系统架构设计师-考点整理高...
根据提供的文件信息,我们可以推断出这份文档主要讨论的是“大型分布式网站架构设计”的相关内容,并且提供了一个百度云的下载链接。接下来,我们将基于这些信息深入探讨与大型分布式网站架构设计相关的几个关键知识...
### 大型分布式网站架构设计与实践 #### 一、引言 在当前互联网时代,随着用户数量的急剧增加以及业务复杂度的不断提高,传统的单体应用架构已经无法满足高并发、高性能的需求。因此,越来越多的企业开始采用...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
### 知识点梳理 #### 一、系统架构设计概论 **知识点1:系统架构的概念与作用** - **概念**:系统架构是指一个软件系统的结构化设计,它...通过不断的实践和总结,逐步建立起一套属于自己的系统架构设计理念和方法论。
真正的(完整版)大型网站技术架构:核心原理与案例分析+李智慧.pdf
《系统架构设计师教程-第4版》是一本深入探讨系统架构设计的专业教程,适用于准备进行系统架构设计学习或备考系统架构设计师资格认证的读者。本书全面涵盖了系统架构设计的基础理论、核心概念、最佳实践以及最新技术...
Web信息架构:设计大型网站.pdf 陈建勋 翻译 范炜 审校
### 埃森哲-大型集团管控信息化战略规划项目系列之蓝图设计方案 – 基础设施架构(BPIT运营模式) #### 一、埃森哲大型集团基础设施架构目标及架构原则 **基础设施架构目标** 本项目的基础设施架构目标是构建一个...
文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考...
### 系统架构设计师教程第二版知识点概览 #### 一、系统架构设计师的基本要求与基础知识 1. **绪论**: - 系统架构设计师的职业定位和发展趋势。 - 系统架构设计师应具备的基本素质和技术能力。 2. **计算机...
华为企业数据架构、应用架构及技术架构设计方法 本资源摘要信息来自于一份52页的PPTX文件,标题为"华为企业数据架构、应用架构及技术架构设计方法",描述为"华为企业数据架构、应用架构及技术架构设计方法",标签为...
金融-证券:一叶知秋系列一:从组织架构维度复盘国际投行战略变迁.pdf
7. **架构决策与权衡**:每个设计决策都可能带来一系列后果,如选择某一技术可能会牺牲另一方面的性能。因此,架构师需要在不同需求间进行权衡。 8. **架构评估方法**:包括质量模型、场景技术、模拟与建模等,用于...
6. 零信任架构的实施指南:包括零信任架构的设计、实施和评估等。 7. 零信任架构的评估方法:包括零信任架构的安全评估、风险评估等。 NIST 零信任架构 SP 800-207 标准草案(中文版)为组织和个人提供了一个系统的...
**ADM(架构开发方法)全称是Architecture Development Method,是一种系统化的、结构化的软件和信息系统架构开发过程。在IT行业中,ADM被广泛应用于大型复杂项目的规划和实施,以确保系统的可扩展性、稳定性和可...
基于Web的分布式架构网上商城系统设计与实现-分布式架构网上商城网站-分布式架构网上商城网站代码-分布式架构网上商城平台-分布式架构网上商城平台代码-分布式架构网上商城项目-分布式架构网上商城项目代码-分布式...