web 系统发展历程
文章目录
尚硅谷课程的学习笔记
web系统的发展历程
------- 单机mysql的美好年代
最开始(90年代),一个网站的访问量不大,页面多是静态网页,这种情况下,单个数据库是完全可以支撑的 ;

后来随着技术的发展,动态页面的加入,网站访问量上去以后,单个数据库开始出现瓶颈问题了 ;
系统的数据量太大,一台数据库服务器已经存不下了;
创建的数据的索引,越来越多,单台数据库服务器的内存已经加载不了全部索引了 ;
网站做的越来越大,访问量越来越多,读写操作越来越频繁,达到单台数据库实例读写的瓶颈了;
遇到上面的磁盘、内存、读写瓶颈,伟大的架构师开改变系统架构;
------ Memcached(缓存)+Mysql+垂直拆分
为了缓解上面提到的访问量过多,对数据库服务器造成的压力,架构师选择在数据库服务器之前,架构一个缓存服务器,帮数据库挡掉一部分压力 ;
对有索引和数据量太大,架构选择对数据库进行 垂直拆分,使用多台数据库,构建集群,将不同的 业务 的数据(比如卖家和买家)保存到不同的数据库服务器上;
垂直拆分:(按照业务进行分割,将不同业务的表,分到不同的数据库里面)

------ mysql 主从读写分离
主从分离:主库有一条记录,从库也立刻记录一条 ;
读写分离:读和写的操作,放在不同的数据库服务器上 ;
对于之前的架构,已经可以解决大部分的问题了,但是在某些情况下,还是会有问题的,前面 Memcaahe 缓存只会降低对数据库读的压力,但是如果有大量的 读写操作 集中到一台数据库上,数据库还是会达到性能瓶颈,比如大量的买家注册信息,同时又有大量的买家登录系统,读写全聚到一起了,那么保存买家的数据库压力就会很大;
架构师们又想出一个改进,进行 主从读写分离 ( 图中的而每一个主、从,都是一个数据库组,里面都进行了垂直拆分 );

继续对数据库进行垂直拆分的,图上没细画出来,并且进行主从读写分离,所有的写操作都由 master 进行,所有的读操作,都由 slave 进行 ,将读写分离,缓解数据库的压力;
------ 分表分库+水平拆分+mysql集群
水平拆分:将同一张表的数据,分到不同的数据库 ;
上面的架构,将读写分离,减轻了数据库的写压力,但是当访问量持续增加,写操作都在 master 服务器上 ;master 时间久也扛不住了。
继续改进,使用如下架构:

进行分表分库操作,将数据表的数据内容,水平分表,按照字段的某些规则,将同一张表的数据进行划分,存到不同的数据库里面,每个 M/S 里面都是这样的一个数据库组 ;
然后进行集群,组成一个大的系统 ,简单说,就是将数据进行了分类,每组 M/S 里面,水平分表,保存在所有的表,但是保存每张表的部分数据;这样,就相当于导流了,试想,当有有人读写数据库,读写的数据不同,就会被分到不同的 M/S 上,这样对 M/S 的主数据库减轻压力 ;
------ 现在的架构
前面当有 负载均衡(Nginx),然后打到 服务器集群 ,然后 数据库集群 ,还有 缓存服务器,图片服务器,音、视频服务器,通信服务器 等一大堆 ;

web 系统发展历程的更多相关文章
- web技术发展历程--读《大型网站技术架构_核心原理与案例分析》
1 早期的web服务 2 CGI程序的出现.发展.凋零到MVC的兴起 CGI:通用网关接口技术. 随着CGI技术的出现,web服务端可以通过不同的用户请求产生动态页面内容. web服务器将请求数据交给 ...
- web服务发展历程
PhP发展历史1.php: 开始名字含义:personal home page 个人网页 现在名字含义:HyperText Perprocessor 超文本预处理语言 预处理: 说明PHP是在服务器预 ...
- 十年WEB技术发展历程
一个小分享,知识有限,抛砖引玉. ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生.传奇,大话西游第一代网游一时风靡.我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一 ...
- web开发发展历程
cs架构:(软件主要运行在桌面上,数据库软件运行在服务器端) 缺点:如果web应用修改或升级,需要每个客户端逐个升级桌面App,因此Browser/server模式开始流行. bs架构:应用程序的逻辑 ...
- 动态 Web Server 技术发展历程
动态 Web Server 技术发展历程 开始接触 Java Web 方面的技术,此篇文章是以介绍 Web server 相关技术的演变为主来作为了解 Java servlet 的技术背景,目的是更好 ...
- Web UI 技术发展历程
本文内容 纯文本和静态 HTML 页面 服务器端技术 插件技术--ActiveX.Applet 和 Flash Ajax 异步时代和基于 JavaScript 的 UI 技术 RIA--Adobe F ...
- Linux实战教学笔记03:操作系统发展历程及系统版本选择
标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...
- 从故纸堆里,回顾下Web技术的发展历程
通过对比这些年的计算机图书来让大家感受下前些年Web技术的发展历程. Web开发框架,目前是Spring Boot+JPA,我正好出过本书,从中大家能感受到现在的技术. <Spring Boot ...
- 使用C/C++发展Web系统开源
下载 见 C++开发的论坛系统 - BBS 下载地址:Fetch_source_code_release_vse2008_v1.2.1.7z 眼下先暂存在百度云上,最近会放入github 当前版本号的 ...
随机推荐
- 【原创】go语言学习(十六)接口
目录 接口介绍与定义 空接口和类型断言 指针接收和值接收区别 接口嵌套 接口介绍与定义 1. 接口定义了一个对象的行为规范 A. 只定义规范,不实现B. 具体的对象需要实现规范的细节 2.Go中接口定 ...
- FOI 冬令营 Day6
目录 T1.堆(heap) 传送门 Code T2.密文(secret) 传送门 Code T3.树(tree) 传送门 Code 别问Day5到底去哪里了,咕咕咕 T1.堆(heap) 传送门 Co ...
- 物聯網安全黑客松 IoT Security and Privacy Hackathon
感覺這次黑客松的程度屬於初階,但是節奏很快,內容緊湊.概念部分解說較多,以致實驗時間縮短,有些只能看demo有點遺憾.幸好有video-taped,事後回溯可以看看能不能replicate實驗.總體而 ...
- 配置centos7阿里镜像源和epel源
[root@runstone yum.repos.d]# pwd /etc/yum.repos.d [root@runstone yum.repos.d]# cat aliBase.repo #镜像源 ...
- hadoop(1)---hadoop的介绍和几种模式。
一.什么是hadoop? Hadoop软件库是一个开源框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集.它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储.库本身不是依靠 ...
- 走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
谈谈 Tomcat 请求处理流程 转自:https://github.com/c-rainstorm/blog/blob/tomcat-request-process/reading-notes &l ...
- WORD转HTML-python第三方包Mammoth(官方文档翻译)
Mammoth 官方 Mammoth可用于将.docx文档(比如由Microsoft Word创建的)转换为HTML.Mammoth致力于通过文档中的语义信息生成简洁的HTML,而忽略一些其他细节.例 ...
- STL算法之find
定义 template <class InputIterator, class T> InputIterator find (InputIterator first, InputItera ...
- JS 将页面上的表格导出为 Excel 文件
如果在页面上展示了一个表格,想把这个表格导出为Excel文件,那么在要求不高的情况下,可以直接利用 JavaScript 的 Blob 和 Object URL 特性将表格导出.不过,这就是利用了 E ...
- 【Java】浅谈Java内部类(转载)
说得挺细的,不是泛泛而谈.https://blog.csdn.net/weixin_42762133/article/details/82890555