传统架构

传统架构,构建思想

 

 

 引言:

传统架构大多数都是由Linux,apache,mysql,php组件成的,一个优秀的架构他一定具备着三高特点,高并发,高可用,高性能。nginx是Apache产下的一个非常有名的反向代理服务器,具有高性能的负载均衡,用户的请求路劲访问nginx有nginx去调用应用服务器(采用一定的算法实现负载均衡),实际生产下应用服务器应该是一个多台服务的,这一个应用服务器的分布式他是实现了高并发。至于文件服务器,由于文件存储量非常大,而应用服务器它是一个用来接受用户的请求和响应的他更依赖计算机的内存和cpu的性能,所以在实际的开发上把文件和应用服务器分离开了。文件服务器目前有FastDFS,hdfs...。文件和应用服务器我们解决了,但是还有一部分就是数据服务,一个产品他的最终操作落实到数据库服务上,你想想,你的应用服务器支持很多用户去访问,但是数据库服务没有那种性能,最终用户体验的问题还是未解决。


  1. 应用服务器的详解:应用服务器具两种状态
    有状态:
    这个意思就是每一个服务器他都和一个用户绑定了。这种缺点导致的问题,由于我们的服务器是一个分布式服务器具有多台服务器,当你的服务器和用户进行了绑定那么他在nginx的负载均衡下切换到另一个服务器下那么,就会出现数据丢失的问题。
    无状态:
    既然在我们想实现高并发,高性能那么我们最好的选择就是无状态应用服务,能够将用户和应用服务绑定的形成有状态的常见的就是Session,为什么request,application不是呢?因为request一次请求就结束,application的过于庞大不适合。到现在为止,我们想实现一个多个应用服务器,要解决的问题有session的存储问题

  2. 解决session存储的问题:一个是利用Nosql数据库 redis集中式的管理session,还有一个就是利用Memcached来存储session是想session的管理达到应用服务器无状态,称为session池,缓冲队列(队列)
  3. 还有一个就是数据库的服务:
    1. 关系型数据库 :

             RDBMS是一组数据库的统称。MySQLOracleSqlServerAccessDB2DerbySqlLite        

      遵循SQL规范(结构化查询)。标准SQL(单表、子查询、表连接)、DDLDML、聚合。区别:单行函数、分页语句

    2. 非关系型数据库: NOSQL是一组新型数据的统称,于RDBMS不同,所有的NoSQL之间没有必然的联系,差异较大。每一款NoSQL书库的设计只是为了解决特定的问题。因此NoSQL数据目前分为四大阵营:Key-Value键值对(基于内存 Redis)、基于文档/JSON存储(MongoDB/CouchDB)、基于列存储数据库(Hbase)、图形关系存储(Neo4j

        传统的架构,优化点就是解决这些问题,比喻分布式文件服务器,分布式缓存,还有一点就是数据库的优化......

        有问题希望大家指出来,下次的笔记就是 分布式缓存,上一期分布式文件系统用的是FastDFS至于hadoop的后面再做

原文地址:https://www.cnblogs.com/youer66/p/7885125.html