WEB架构的演变

举报
Regan Yue 发表于 2021/09/23 13:03:35 2021/09/23
【摘要】 WEB架构的演变分布式、集群我想大家都听说过,那么这个东西是怎么转换来的呢?今天我们来聊一聊WEB架构的演变。假如我们要搭建一个购物网站,最初我们只有一台服务器,很快我们发现服务器资源不够用,怎么办呢?上我们的第一道菜: 物理分离webserver和数据库。简单来说,就是将同一台服务器上的webserver和数据库分散到两台服务器。然后上第二道菜:增加页面静态化(缓存)。你想一下,用户访问我...

WEB架构的演变

分布式、集群我想大家都听说过,那么这个东西是怎么转换来的呢?

今天我们来聊一聊WEB架构的演变。


假如我们要搭建一个购物网站,最初我们只有一台服务器,很快我们发现服务器资源不够用,怎么办呢?

上我们的第一道菜: 物理分离webserver和数据库。

简单来说,就是将同一台服务器上的webserver和数据库分散到两台服务器。


然后上第二道菜:增加页面静态化(缓存)。

你想一下,用户访问我们的页面,如果每次访问要经常去查询数据库的话,这要消耗多少资源。所以我们要尽可能多静态页面,并将页面缓存。


接下来是第三道菜:增加页面动态缓存。

动态缓存有asp(.Net)、jsp ( Java ) 这些东西。

用户访问这些页面,比如访问一个jsp页面,它是将Java代码翻译成Html页面。你想一想如果每次访问都要翻译一次,这对服务器资源的消耗比较大。所以要将其缓存,但是页面动态缓存和静态页面的缓存是不一样的,可以使用Freemarker来处理。


我们再来看看第四道菜:增加数据缓存

就是将数据库查到的数据进行缓存。我们接下来简单说一下数据缓存。数据缓存可以使用redismemcache

我们要将百分百确定很多人会用的数据将其缓存。

再看看第五道菜:增加webserver

增加了一台网站服务器就会发生这种情况:第一次登陆进入的是服务器A,去数据库访问了一次,而第二次登陆进入的却是数据库B,又得访问数据库。要想解决这个问题,我们就要使用memcache,其实就是通过分布式session共享来实现。

其实这个就是负载均衡。

这是第六道菜:分库

如果数据库访问量大到一定程度,我们就要增加数据库,也就是分库。MySQL本来就是支持分库的,就是使用MySQL主从架构。

然后第七道菜:分表、DAL和分布式缓存

为什么要分表呢?因为一个表过大了会在某些操作时影响效率。

我们可以用Hash来进行分表。

有水平分表和垂直分表两种操作。

DAL就是定义数据库分发请求规则。根据规则来存数据和取数据。

如果要缓存的数据量很大,我们就使用分布式缓存,用redis集群来缓存。

第八道菜:增加更多的wbeserver

如果还不行,就继续增加web服务器吧。

第九道菜:数据读写分离和廉价存储方案

什么叫读写分离?我们数据库无非是两种操作,读和写。我们让主从分离的数据库中主数据库进行增删改,而从数据库进行查的时候多一点。


什么叫廉价的存储方案?其实就是一群小鱼吃大鱼。


再来看看最后一道菜:从需求层面进行拆分

如果还需要扩展应该怎么办呢?

我们就要熟悉业务逻辑,从需求层面上取拆分。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。