2019版:第一章:(1)现有技术应用
一、技术的分类
1、解决功能性的问题
Java、Servlet、JSP、Tomcat、RDBMS、JDBC、Linux、Svn 等
2、解决扩展性的问题
Spring、SpringMVC、SpringBoot、Hibernate、MyBatis 等
3、解决性能的问题
NOSQL、Java 多线程、Nginx、MQ、ElasticSearch、Hadoop 等
二、发展历程
1、Web1.0 时代
Web1.0 时代,数据访问量很有限,用一夫当关的高性能的单节点服务器可以解决大部分问题。
2、Web2.0 时代
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
三、解决服务器 CPU 内存压力
思考:Session 共享问题如何解决? 方案一:存在 Cookie 中? 此种方案需要将 Session 数据以 Cookie 的形式存在客户端,不安全,网络负担效率低。 方案二:存在文件服务器或者是数据库里,此种方案会导致大量的 IO 操作,效率低。方案三:Session 复制
此种方案会导致每个服务器之间必须将 Session 广播到集群内的每个节点,Session 数据会冗余,节点越多浪费越大,存在广播风暴问题。方案四:存在 Redis 中
目前来看,此种方案是最好的。将 Session 数据存在内存中,每台服务器都从内存中读取数据,速度快,数据结构还相对简单。