面试:请说一下Web发展过程中产生的一些问题:
在Web发展过程中,网络的访问量越来越大,随之就会产生很多发展,以下是一个简单的发展概述,以便总结一些要解决问题的技术点
1.1.Web1.0时代:
- 1.在web1.0时代,数据访问量很有限,用一夫当关的高性能的
单点服务器
可以解决大部分问题
1.2. Web2.0 时代:
- 1.web2.0时代用户访问量大幅提升,同时
产生了大量的数据
。加上智能移动设备的普及
,单一的互联网平台面临了巨大的性能挑战,产生了cpu及内存压力,同时高频的数据库读写,产生了IO压力
1.3.各问题的解决:
a.解决CPU以及内存压力的方法:
- 1.使用nginx实现负载均衡
- 2.拆分应用服务器,拆分为数据服务和文件服务,部署专门的文件服务器,并将服务器进行集群化处理
b.多台服务器时缓存问题:
- 当有两台服务器的时候,比如说登录账号,当第一次登陆的时候,请求A服务器,产生了session;当再次登录的时候,到了第二台服务器上,但是如果session对象存在第一台上,那么这时B服务器就没有session对象。所以再继续操作也不是登录状态。
所以说session存储在哪呢的问题
?? 几种解决方法
- 存储在cookie里面,在客户端,但是具有安全问题
- 存在文件服务器或者数据库里面,但是会有大量IO效率问题
- session复制,把一台服务器上的sssion复制到另一台上,但是会导致session数据冗余,节点越多,浪费越大
使用缓存数据库,缓存数据库是完全在内存中,速度较快,数据结构简单(Redis)
c.解决IO压力:
为了解决上述问题,我们就引出了以下知识点的学习: