服务器架构的演变过程

1,传统单一模式

一个项目系统包含所有的功能,如登录,注册,验证,前台展示,后台管理等,所有的功能在一个项目中实现

缺点:
1)不便于维护,系统的每个功能耦合性太高,如果某一个功能出现bug,整个项目都得下线维护修复,会影响整个功能模块;
2)横向拓展性不好,特别是目前互联网项目,需求变化很高,代码都不能写死,就是为了便于后面需求变化,增加新功能,而因为每个功能之间耦合性太高就导致修改一处,可能导致需要修改很多处.功能的修改或增加麻烦
3)因为整个项目放在一个服务器中,存在并发量问题,如果用户多了,并发问题亟待解决.于是变出现了下面的模式–增加集群的方式.


2 集群模式

  集群模式为了解决访问量大的情况,把项目放到多个服务器上,通过添加服务器的方式来缓解用户访问大的压力.
这中集群模式在一定程度上能够增加并发量,但也面临问题.

缺点:

  • 1)重复登录问题;这个模式添加集群,就得使用负载均衡服务器(通常使用nginx作为服务器),如果一个用户第一次登录访问被分配到了1号服务器,服务器存储了该用户的信息(session域中),但是用户下次的请求就不一定再被分配到这个服务器了,假如这次被分配到了2号服务器,则该服务中没有该用户的session信息,则会要求该用户重新登录,用户体验不好.

    解决:针对上诉问题,解决方案

    • a,服务器之间session广播,但是广播是要占用网络带宽的,即会占用网络资源,在用户访问已经很大的时候,应该尽可能减少消耗,不然用户登录网站也会缓慢,体验不好等,这时,服务器的集群数量也不能太多,超过一定数量后,session广播消耗的资源的坏处可能比搭建集群带来的好处还大,所以优势会随着集群数量呈现先增长再下降的负向的抛物线趋势.
    • b,可以采用session共享的方式,采用redis缓存服务器作为一个公共的存储用户信息的地方,在用户访问服务器1时,服务器1去redis中会查看是否有登录信息,在访问到服务器2时,服务器2也去redis服务器查看,这样把信息都让redis来管理,效率更高.
  • 2)每个功能之间的耦合度依然很高,不便于新增或维护功能.于是便有了下面的架构模式–分布式

3 分布式架构

分布式架构比之传统的单一模式的改变就是 分布式架构把整个系统拆分为各个小的功能模块,每一个又独立成为一个系统,只是这个系统只提供单独的功能,而每个系统又分别放到不同的服务器中,这样形成了一个多个服务器架构的网,每个功能相互协作


* 优点:
1)解决了功能耦合度高问题,每个模块相互独立,如果某一个功能需要修复,只需修改这一个就好,不影响整个系统运行.而且如果需要添加新功能,非常容易切入到系统中来,且不改动其他的模块.
2)真正能够解决并发问题,因为每个功能模块拆分开了,如网站搞促销活动,商品浏览页面展示的访问压力大,可以有针对的添加集群,解决高并发问题,即可实现对每个节点(即每个独立的功能)添加集群.
* 缺点: 每个模块虽然独立,但是可能每个模块有一些通用的功能,而这些通用的功能在每个功能中都要写一遍,如何提高代码复用性,这是一个问题.于是便有了下面的架构模式


集群和分布式的区别

集群:即每个服务器上的提供的功能和服务相同, 只是人多,做的事情却是相同的; 相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行。
分布式: 即每个服务器上功能不同,大家要相互分工, 协作完成整个工程; 把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。

4 SOA模式–(Service Oriented Architecture)面向服务架构

 soa模式的服务架构,也是分布式架构,只是针对之前出现的问题,做了改进,即为了提高代码的复用性问题,将整个系统主要分为2部分,把工程都拆分成服务层工程、表现层工程。

服务层中包含业务逻辑,只需要对外提供服务即可。
表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。工程都可以独立部署,而表现层又可以细分为各个不同的部分,而这些模块都是对外提供服务,只是具体分工不同,但是他们每个要进行逻辑处理时,可以调用服务层的同一个业务逻辑.这样一个业务逻辑可以供表现层的多个服务调用,代码复用性提高.

服务器架构的演变过程相关推荐

  1. 一文简述服务器架构的演变过程:集群—分布式—微服务

    一.单服务器架构 小猿公司创立初期准备搭建一个电商网站销售公司产品,因为公司创业初期用户量不大而且着急上线,在资金有限的情况下公司购买了一台服务器,将小猿团队开发的网站放到服务器上这便算是正式上线了. ...

  2. 大型网站架构演变过程、大并发服务器架构

    大型网站架构演变过程: [Step1]web server与数据库分离 web动静资源分离 静态请求:如html, js, css, img 动态请求:如jsp, php [Step2]缓存处理 客户 ...

  3. 大并发服务器架构 大型网站架构演变

    服务器的三条要求: 高性能:对于大量请求,及时快速的响应 高可用:7*24 不间断,出现故障自动转移,这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外任何网络系统结构都可以 ...

  4. 网络编程之网络架构及其演变过程、互联网与互联网的组成、OSI七层协议、socket抽象层...

    目录 网络架构及其演变过程 单机架构 CS架构 BS架构 BS架构和CS架构的区别 C/S架构的优缺点: B/S架构的优缺点: 互联网与互联网的组成 互联网的组成(教科书版) 互联网的组成(科普版) ...

  5. 高性能、高可用平台架构的演变过程

    转载自 高性能.高可用平台架构的演变过程 开篇概述 在如今移动互联网.互联网+.大数据的时代,各类的互联网网站.平台异常突起,如同雨后春笋,有种"忽如一夜春风来,千树万树梨花开"感 ...

  6. 我最近一个项目的架构与演变过程

                想发帖了,记录下最近做的一个项目的架构与演变过程.             首先我不是个爱胡侃的人,所以拿点实际的例子说事,架构并不复杂. 最近做完了一个Web项目,因为这个项 ...

  7. 重新定义 AI 服务器架构

    作者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 得益于迅速增长的计算能力.海量数据,以及神经网络前所未有的突破,AI 变得无处不在,也成为未来十年最具颠覆性的技术.根据 G ...

  8. 详细!看看顶级互联网公司都在研究的无服务器架构!

    无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon.Google 和 Microsoft)都在大力投入这 ...

  9. 五大场景深解无服务器架构如何实践?

    2018年1月9日, 不是什么特殊的日子. 但是我们想在这一天, 为你释清这么几个问题: 什么是无服务器架构? 无服务器≠没有运维 无服务器运维的内容是? 无服务器需要的场景是? 怎样上手无服务器架构 ...

最新文章

  1. rx在c语言中,RxSwift - 入门
  2. python基础教程:filter(),map()函数用法
  3. vs2017搭建Linux的开发调试环境(VisualGDB)
  4. 1039: 二哥的困惑 Ⅱ
  5. 征战蓝桥 —— 2017年第八届 —— C/C++A组第9题——分巧克力
  6. python 属性描述符
  7. 除了固定工资,如何利用自己的技术变现?
  8. nslookup查询结果详解
  9. 优秀渐变色彩应用PSD分层海报模板,大神都是这样玩渐变的,一看就懂
  10. springmvc往html设置变量,SpringMVC:@MatrixVariable矩阵变量
  11. FLASH、SDRAM
  12. Spring Boot 2.3 优雅停机来了,新特性真香!!
  13. Android 所遇问题(一)
  14. ubuntu20.10设置桌面共享的三种方式
  15. 5G十大细分应用场景研究报告
  16. 模拟银行排队叫号机 2011.04.18
  17. 使用 conda uninstall xxx时,一直卡在 Collecting package metadata (repodata.json)
  18. POST http://localhost:8080/admin/getPageDiseaseList net::ERR_INCOMPLETE_CHUNKED_
  19. linux 配置局域网内部www服务器,局域网内部邮件服务器搭建方法
  20. 深度学习入门与快速实践

热门文章

  1. 推荐一个好用的图片压缩网站!清晰度不变的同时体积减小一大半
  2. 名悦集团:有哪些汽车称得上是内外兼修?
  3. excel如何添加汉字拼音
  4. 浅略/逐行分析园区网接入交换机配置(以Ruijie交换机为例)
  5. OSI七层模型详解——物理层
  6. 确认,谷歌AI中国中心总裁李佳离职
  7. 天津理工大学信息论与编码实验(1)
  8. TOC制约理论在项目管理中的应用案例分析
  9. 有没有比QQ更好用的即时通讯软件,出色的沟通软件如何选择
  10. L1 L2 LASSO问题