第一章、网络架构及其演变过程

  

1.1 软件的三大类型

  单机类型、CS类型、BS类型

1.2 BS网络传输分解(TCP/IP模式)

  网络接入层:将需要相互连接的节点接入网络中,为数据传输提供提交。(相当于所住地方必须有快递点)(没有协议)

  网际互联层:找到要传输数据的目标节点。(告诉卖家你的地址)(IP协议)

  传输层:实际传输数据。(发送快递)(TCP协议)

  应用层:使用接受到的数据。(收到快递拆包使用)(HTTP协议1)

  解决访问速度的核心就是解决海量数据操作问题和高并发问题------>复杂的网站架构

1.4 海量数据解决方案

  1.缓存和页面静态化

    常用的缓存框架:Ehcache、Memcache、Redis。

    页面静态化:是将程序最后生成的页面保存起来,使用页面静态化就不需要每次调用都重新生成页面了。

  2.数据库优化

    表结构优化

    sql语句优化

    分区、分表、索引优化、使用存储过程

  3.分离活跃数据

  4.批量读取和延迟修改

    原理就是减少了操作次数来提高效率。

  5.读写分离

    就是对数据库进行集群。这样就可以在高并发的情况下将数据库的操作分配到多个数据库的服务器中去处理从而降低单台服务器的压力。

  6.分布式数据库

    分布式数据库就是将不同的表放到不同的数据库中然后放到不同的服务器中。数据库集群是将多个请求分配到不同的服务器去处理,从而减轻单台服务器的压力,而分布式数据库是解决单个请求本身就非常复杂的问题,它可以将单个请求分配到多个服务器去处理,使用分布式后的每个节点还可以同时使用读写分离,从而组成多个节点群  

  7.NoSql和Hadoop

    hadroop是将同一个表中数据分成多块保存到多个节点(分布式),而且每一块数据都有多个节点保存(集群),这里集群除了可以并行处理相同的数据,还可以保证数据的稳定性。这里的每一个节点都不包含一个完整白哦的数据,但是一个节点可以保存多个表的数据。

1.5 高并发的解决方案

  1.将应用和静态资源分离

    将图片、视频单独放到相应的服务器中,使用专门的域名去访问,如新浪的图片保存在sinaimg.cn域名对应的服务器中。

 

  2.页面缓存

    页面缓存就是将应用生成的页面缓存下来,这样就不需要每次请求都要重新生成页面了。使用nginx服务器或者Squid服务器。

  3.集群与分布式

    集群是每台服务器都具有相同的功能,主要起分流的作用。分布式是将不同的业务放到不同的服务器中,处理一个请求可能需要用到多台服务器,这样就可以提高一个请求的处理速度。

    

    集群session两种处理方式:一种是在session发生变化时同步到其他服务器中,tomcat默认使用这种方式,通过配置实现;另外一种时用一个程序统一管理session,使用缓存来统一管理session。

  4.反向代理

      

    反向代理服务器和代理服务器:代理服务器,例如访问Facebook直接访问不了,这时候让代理服务器去访问,然后将结果返回给我们,代理服务器是我们主动使用的,它不需要有自己的域名。反向代理服务器是我们正常访问一台服务器,服务器自己调用了别的服务器的资源,并返回给我们,我们自己不知道,它有自己的域名。

  5.CDN

    CDN是一种特殊的集群页面缓存服务器,当接受到用户的请求后会将请求分配到最合适的CDN服务器节点获取数据,如联通用户分配到联通的节点,北京用户分配到北京的节点,CDN的每个节点就是一个页面缓存服务器,如果没有缓存的页面就从主服务器获取,有就直接返回。

  

  6.底层的优化

    quic协议传输数据比TCP效率更高,比UDP安全。

猜你喜欢

转载自www.cnblogs.com/yongan/p/10538994.html