《看透springMvc源代码分析与实践》笔记1网站架构演变

一、 软件三大类型

单机类型,cs类型,bs类型

二、网络

TCP/IP四层结构
《看透springMvc源代码分析与实践》笔记1网站架构演变

三、海量数据处理

1、缓存
(1)、ConcurrentHashMap
(2)、Ehcache,Memcache,redis
2、页面静态化
(1)、freemaker,velocity
(2)、squid,nginx
3、数据库优化

  1. 表结构优化
  2. sql语句优化
  3. 分区
  4. 分表
  5. 索引优化
  6. 使用存储过程代替直接操作

4、分离活跃数据
5、批量读取和延迟修改

  1. 批量读取是将多次查询合并到一次
  2. 延迟修改是对于高并发频繁修改数据,暂时将数据保存到缓存中,然后定时保存到数据库

6、读写分离
对数据库集群,专门负责写数据的叫主服务器,写入后底层同步到从服务器,读的时候到从服务器读。
《看透springMvc源代码分析与实践》笔记1网站架构演变
7、分布式数据库
读写分离的作用是将多个请求分配到不同数据库服务,从而减轻单台服务器压力,而分布式数据库是解决单个请求就很复杂的情况,它可以将单个请求分配到不同服务器处理,使用分布式后的每个节点还可以同时使用读写分离,组成多个节点群。
8、Nosql和Hadoop

四、高并发解决方案

1、应用和静态资源分离
《看透springMvc源代码分析与实践》笔记1网站架构演变
2、页面缓存
3、集群和分布式
session同步问题:
一种是在session发生变化后自动同步,tomcat默认使用这种,通过简单配置实现;
第二种是使用专门服务器安装memcached等高效的缓存程序来统一管理session,然后在应用程序中通过重写request并覆盖getsession方法来获取指定服务器中的session。
负载均衡:使用nginx或f5等
4、反向代理
是指客户端访问的服务器并不真正提供服务,它从别的服务器获取资源然后将结果返回给用户
《看透springMvc源代码分析与实践》笔记1网站架构演变
5、cdn

底层优化

传输层优化等