网站技术笔记-演化

简介: <div class="markdown_views"><p>先上图 <br><img src="http://img.blog.csdn.net/20150925143830538" alt="这里写图片描述" title=""></p><p>到现在为止都是通过新增组件来获得能力的。进化到这个架构大概需要如下的过程:</p><ol><li>最简单的,上传文件,应用

先上图
这里写图片描述

到现在为止都是通过新增组件来获得能力的。进化到这个架构大概需要如下的过程:

  1. 最简单的,上传文件,应用程序和数据库都在同一台机器上
  2. 把这三大块分离: 应用程序可能需要更快的cpu的电脑,数据库放到内存很大磁盘很快的电脑上去, 建立单独的文件服务器需要很大的磁盘
  3. 用缓存改善性能,分为本地和远程,本地更快,远程更加可扩展。把集中访问的数据放到缓存上去。这样可以减少给数据库的压力
  4. 单服务器并发处理能力有限考虑应用服务器的集群,使用负载均衡调用服务器把请求发到不同的应用服务器上去,提高并发处理性能。这样可能会带来session共享等问题需要解决
  5. 因为数据库将会面临查询瓶颈,因此对数据库进行读写分离。可以使用mysql自带的主从复制功能来实现,应用层可以考虑使用独立的数据库访问模块来完成读写分离。可能会引入主从延迟的问题
  6. 加入CDN(内容分发网络),部署在网络运营商机房,能选择最近网络提供商机房。 反向代理部署在网站中心机房,请求先查询方向代理服务器,如果有要访问的资源,则直接返回。也是缓存的一种体现
    这里写图片描述

  7. 规模再变大,单服务器不够大就要使用分布式文件服务器。 数据库容量也不够,并且单纯的读写分离也满足不了查询性能就要使用业务分库分表的方式来构建分布式数据库服务器

  8. 增加搜索引擎服务器来代替传统数据库查询,增加Nosql服务器来代替关系型数据库
    这里写图片描述

  9. 进行业务拆分。 把整个网站分成多个应用的组合。 应用之间通过超链接,或者消息队列,或者统一的数据库来进行沟通

  10. soa型服务。 因为应用变多,如果都通过数据库来关联,那么会造成连接不够用,或者更多的事务征用。因此把一些公用组件提成soa服务可以更好的支撑

误区:

  1. 为了技术而技术
  2. 迷信大公司的解决方案
  3. 企图用技术解决所有问题,有些问题可以再业务上解决,比如12306放弃秒杀的方式,改为排队和分时段
相关文章
|
1月前
|
缓存 NoSQL 应用服务中间件
性能基础之大型网站架构演化(整理篇)
【2月更文挑战第14天】性能基础之大型网站架构演化(整理篇)
45 1
性能基础之大型网站架构演化(整理篇)
|
2月前
|
机器学习/深度学习 数据采集 存储
4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒
4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒
|
27天前
|
机器学习/深度学习 算法 搜索推荐
【高效率学习】探索最适合你的学习之路:从心理学、动机到教育学的深度解析
【高效率学习】探索最适合你的学习之路:从心理学、动机到教育学的深度解析
92 0
【高效率学习】探索最适合你的学习之路:从心理学、动机到教育学的深度解析
|
3月前
|
人工智能 小程序 搜索推荐
【利用AI让知识体系化】从理论层面了解微信小程序(二)
【利用AI让知识体系化】从理论层面了解微信小程序
|
3月前
|
人工智能 小程序 前端开发
【利用AI让知识体系化】从理论层面了解微信小程序(一)
【利用AI让知识体系化】从理论层面了解微信小程序
|
缓存 负载均衡 安全
图解大型网站技术架构演变过程!秒懂
图解大型网站技术架构演变过程!秒懂
208 0
图解大型网站技术架构演变过程!秒懂
|
缓存 前端开发 NoSQL
笔记整理:技术架构涵盖内容和演变过程总结
单体架构 2. 应用与数据库分离 3. 使用缓存抗量 4. 多应用部署和Nginx反向代理 5. 数据库读写分离 6. 应用分组部署 7. 应用分库设计 8. RPC 分布式部署 9. 应用细分和网关引入 10. 低代码编程和可复用
277 0
笔记整理:技术架构涵盖内容和演变过程总结
|
存储 缓存 架构师
揭秘大型网站架构进化之路
揭秘大型网站架构进化之路
198 0
揭秘大型网站架构进化之路
《认知颠覆》读书笔记之十一
去你的规划吧,世界如此无常,我们需要的是进化而不是规划
170 0
|
Android开发
《认知颠覆》读书笔记之二
认知是一种奇妙的东西,一起踏上深入之旅吧
118 0