随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系型数据库技术(即NoSQL)和非数据库查询技术如搜索引擎.NoSQL数据库一般使用MongoDb,搜索引擎一般使用ElasticSearch,最好可以研究ELK整套解决方案. 使用NoSQL和搜索引擎 NoSQL和搜索引擎对于应用程序来说都可以认为是一种'数据源',所以更新后的架构如下图: 总结: 使用NoSQL和搜索引擎后大大缓存了关系型数据库的压力,网站的性能得到进一步提升.同时衍生出来的问题是:需要在原来的数…
随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎,如图. NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持.应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦.…
随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大.有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开.为了提供更好的用户体验,留住用户,网站需要加速网站访问速度. 主要手段:使用CDN和反向代理.如图. 使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力.…
前面的话 本文将详细介绍网站架构的演化过程 初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来.小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的应用程序.数据库.文件等所有的资源都在一台服务器上.通常服务器操作系统使用Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySQL,汇集各种免费开源软件及一台廉价服务器就可以开始网站的发展之路了 分离阶段 随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导…
Drupal与大型网站架构(译)- Large-Scale Web Site Infrastructure and Drupal Linuxjournal 网站经典文章翻译,原文地址: Large-Scale Web Site Infrastructure and Drupal,由于主要按照内容翻译,非逐字翻译,不妥之处,请参考原文阅读. 时至今日,架设一个drupal网站已经是非常容易的了,直到网站规模开始变大, 那么你就需要花费很大的精力在查找和修复网站性能瓶颈上面.本文我们将谈到一些技术可…
大型网站架构演进 大型网站是一种很常见的分布式系统,除了海量数据和高并发的访问量,本身业务和系统也复杂. 大型网站的架构演进 我们现在常用的大型网站都是从小网站一步一步发展起来的,这个过程中会 有一些通用的问题要解决,而这些也是我们构建中间件系统的基础,那么我们就 从最简单的网站结构开始,看看随着网站从小到大的变化,网站架构发生了哪些 变化. a.用Java技术和单机来构建的网站 我们先从最简单的开始吧.说到做网站,不管大家是自己动手实践过,还是听说过,肯定能反应出很多技术名词,例如LAMP.M…
职业发展道路基本有3条: 第一条路线(技术专精): 初级Java开发---中级--高级---项目主管--Java项目经理---网站架构师----资深专家 第二条路线(技术转产品):初级Java开发---中级--产品策划--产品经理---产品总监 第三条路线(技术转运营):初级Java开发---中级--运营---运营经理---运营总监 一个好的比方,程序员就是建筑工地的农民工,架构师则是建筑设计师. 唯一不同的是农民工,基本上不可能成长为建筑设计师: 而在 IT业中,程序员可以努力成为架构师/专家…
1. PlentyOfFish 网站架构学习http://www.dbanotes.net/arch/plentyoffish_arch.html 采取 Windows 技术路线的 Web 2.0 站点并不多,除了 MySpace ,另外就是这个 PlentyOfFish.这个站点提供 “Online Dating” 服务.一个令人津津乐道的.惊人的数据是这个只有一个人(创建人Markus Frind)的站点价值 10 亿,估计要让很多人眼热,更何况 Markus Frind 每天只用两个小时打…
一.WikiPedia(维基百科) WikiPedia是非盈利网站,因此尽可能地使用免费的软件和廉价的服务器.截止到2012年,这个只有区区数百台服务器和十余个技术人员开发.维护的网站,成为流量全球排名第6的大型网站,可见其架构.性能优化有许多值得我们学习的地方. 1.WikiPedia的数据量 峰值每秒钟3万个 HTTP 请求 每秒钟 3Gbit 流量, 近乎375MB 350 台 PC 服务器 2.WikiPedia的主要架构   3.WikiPedia的性能优化策略 1)前端 ① 网站前端…
中间件就是在大型网站中,帮助各子模块间实现互相访问,消息共享或统一访问等功能的软件产品.常见的有: 远程服务框架中间件:主要解决各子模块之间互相访问的问题. 消息队列中间件:主要解决各子模之间消息共享的问题. 数据访问中间件:用于简化应用层对数据层的访问. 关于远程服务框架中间件,国内目前较多应用的是阿里巴巴的开源分布式服务框架Dubbo.其原理如图:  消息队列中间件是一种EDA架构(event driven architecture):通过在低耦合的模块之间传输事件消息来完成模块之间的合作.…