zoukankan      html  css  js  c++  java
  • 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 中,方便下次读取。
     
      扩展:对于持久化的数据库来说,单个库单个表存在性能瓶颈,因此会通过水平切分、垂直切分、读取分离等技术提升性能,此种解决方案会破坏一定的业务逻辑,但是可以换取更高的性能。
  • 相关阅读:
    使用cmd命令行窗口操作SqlServer
    .net core compatibility windows & windows compatible Linux
    Microsoft Azure Tutorial: Build your first movie inventory web app with just a few lines of code
    Running ASP.NET Core applications on Windows Subsystem for Linux
    Simple Use IEnumerable<T>
    JSON in SQL Server 2016
    [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
    NotBacon
    Create an Azure SQL database in the Azure portal
    Cisco IP 电话 将它的voice mail 发送到手机
  • 原文地址:https://www.cnblogs.com/niujifei/p/15787792.html
Copyright © 2011-2022 走看看