互联网上有很多关于网站架构的各种分享,有些主要是从运维和基础架构的角度去分析的(堆机器,做集群),太关注技术细节实现,普通的开发人员基本看不太懂。

本文上篇将主要介绍大型网站基础架构的扩展,下篇则重点从应用程序的角度去介绍网站架构的扩展和演变。

草根时期,快速开发网站并上线。当然,通常只是先试水,用户规模也没有形成,经济能力和投入也非常有限。

有一定的业务量和用户规模了,想提升网站速度,于是,缓存出场了。

市场反响还不错,用户量每天在增长,数据库疯狂读写,逐渐发现一台服务器快撑不住了。于是,决定把DB和APP做分离。

单台数据库也感觉快撑不住了,一般都会尝试做“读写分离”。由于大部分互联网“读多写少”的特性所决定的。Salve的台数,取决于按业务评估的读写比例。

数据库层面是缓解了,但是应用程序层面也出现了瓶颈,由于访问量增大,加上早期程序员水平有限写的代码也很烂,人员流动性也大,很难去维护和优化。所以,很常用的办法还是“堆机器”。

加机器谁都会加,关键是加完之后得有效果,加完之后可能会引发一些问题。例如非常常见的:页面输出缓存和本地缓存的问题,Session保存的问题......

到这里,已经基本做到了DB层面和应用层面的横向扩展了,可以开始关注一些其它方面,例如:站内搜索的精准度,对DB的依赖,开始引入全文索引。

Java领域用的较多的是Lucene、Solr等,而php领域用的比较多的是sphinx/coreseek。

到目前为止,一个能够承载日均百万级访问量的中型网站架构基本介绍完了。当然,每一步扩展里面都会有很多技术实现的细节,后续有时间会写文章单独去剖析那些细节。

下篇我们继续。

大型网站架构体系的演变(上)相关推荐

  1. 大型网站架构体系的介绍

    一.前言 一个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式. ...

  2. 大型网站架构演变和知识体系

    存爱好,作为收藏,原地址:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html ,同时向原创致敬 之前也有一些介绍大型网站架构 ...

  3. 大型网站架构演变和知识体系--转

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  4. [转载]大型网站架构演变和知识体系

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  5. 大型网站架构演变和知识体系(转)

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  6. 大型网站 linux,大型网站架构演变

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  7. 大型网站架构之架构演变

    处于这个互联网开发时代,作为一名软件工程师,我们经常会听到大型网站架构这个字眼,那到底什么是大型网站呢,这样的网站又是一种什么样的架构设计呢?今天我们就开始谈谈大型网站架构设计系列,首先我们今天讲讲大 ...

  8. 大型网站架构演变史(含技术栈与价值观)

    这篇文章是参考李智慧的<大型网站技术架构:核心原理与案例分析>和现蘑菇街CTO曽宪杰的<大型网站系统与Java中间件实践>写的一篇读书笔记. 前言 何谓大型网站?大型网站的特点 ...

  9. 大并发服务器架构 大型网站架构演变

    服务器的三条要求: 高性能:对于大量请求,及时快速的响应 高可用:7*24 不间断,出现故障自动转移,这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外任何网络系统结构都可以 ...

最新文章

  1. 简单完整地讲解tensorflow模型的保存和恢复
  2. 10-5 4-6 查询在具有最小内存容量的所有PC中具有最快处理器的PC制造商 (10 分)
  3. VMware 创建开启虚拟机时候报错的解决方式
  4. 飞鸽传书:造假与成功
  5. pytorch出现RuntimeError: CUDA out of memory.
  6. DTNSim.java注释摘要(学习性质,有错漏的可能,红色为不明确部分)
  7. mysql触发器主机自动增长_三分钟带你分清 Mysql 和 Oracle 之间的误区
  8. Nero Video 2019中文破解版
  9. 华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)
  10. 自定义SeekBar 带文字
  11. python里offset啥意思_深度理解Jquery 中 offset() 方法
  12. 餐馆点菜系统python程序_Python写一个自动点餐程序
  13. Payoneer取人民币全过程(ATM)
  14. 2020哔哩哔哩大数据面试题整理
  15. 软件测试:什么样的公司需要专职测试?
  16. Java 八种排序算法比较实践
  17. 【MySQL | 进阶篇】05、MySQL 视图、触发器讲解
  18. 丙丙-2个月面试20家大厂的知识点总结和建议(答案)
  19. 浪潮之巅第十三章 — 高科技公司的摇篮:斯坦福大学
  20. 分分钟拯救监控知识体系

热门文章

  1. 【Java基础系列】第1章 初识Java
  2. 车险往年保单关联计算的性能优化 1
  3. FPGA信号序列监测工具——VSTAR
  4. 有没有免费的提词器?这款软件很好用
  5. antdesign中表格内容太长或者select内容太长如何悬浮显示?
  6. 无人机系列之图传技术
  7. 成功的项目经理,每天、每周、每月应该做的都在这里
  8. mysql 退出fdisk_fdisk 命令
  9. MATLAB碎片拼接
  10. 小学计算机资格证教案模板,小学教师资格证教案模板.doc