• 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 数据存在内存中,每台服务器都从内存中读取数据,速度快,数据结构还相对简单。
        

    四、解决 IO 压力

      

      将活跃的数据缓存到 Redis 中,客户端的请求先打到缓存中获取对应的数据,如果能获取到,直接返回,不需要从 MySQL 中读取。
      如果缓存中没有,再从MySQL 数据库中读取数据,将读取的数据返回并存一份到 Redis 中,方便下次读取。
     
      扩展:对于持久化的数据库来说,单个库单个表存在性能瓶颈,因此会通过水平切分、垂直切分、读取分离等技术提升性能,此种解决方案会破坏一定的业务逻辑,但是可以换取更高的性能。
  • 相关阅读:
    项目实现多数据库支持 规格严格
    KeyTool 4096 RSA JDK1.5 1.4 规格严格
    KeyTool用法 规格严格
    Tomcat ssl配置 规格严格
    redmine install 规格严格
    zlib1.2.5的编译 规格严格
    Class unload 规格严格
    Ubuntu 8.10 “Intrepid Ibex” 发布时间表确定
    22项Windows或Mac不能而Linux可以的事
    英语谚语
  • 原文地址:https://www.cnblogs.com/niujifei/p/15787792.html
Copyright © 2020-2023  润新知