服务器架构的演进

来源于金松同学的资料分享整理,在此感谢。

一、最早——三层架构

三层架构图
1、最早是三层架构,客户、服务器、数据库
2、还没来得及考虑客户量上涨,就发现了其他问题
3、这个问题是:客户层依赖于Web层,Web层依赖于业务逻辑层。Web层依赖于业务逻辑层这里不对,因为Web层应该只是展示数据,为什么还要依赖业务逻辑?应该依赖的是数据,所以不对
4、因此有了MVC结构

二、MVC架构

MVC架构
1、前端View Template只依赖于Model,黄色的Controller是业务逻辑,通过Model与前端连接
2、缺点是:黄的的Controller和绿色的View离的越来越远,越来越独立,我们却还把他们两放在同一个JVM里面,每次要一起release出去,这个在灵活性上面就有很大的约束。
3、因此考虑前后端分离,因此有了Ajax

三、基于Ajax的前后端分离

基于Ajax的前后端分离
1、缺点是前端太复杂了
2、另一个缺点是不利于SEO(Search Engine Optimization,搜索引擎优化),即搜索引擎会认为我们只有一个页面,却不知道这个页面上的按钮按下去之后会有很多功能,这就导致我们的产品无法在搜索引擎这里有一个好的位置,排位不靠前,互联网搜索第一页以后的东西基本都没人看了。
3、前后端隔的太远也不好,因此有了Node.js

四、基于node.js的前后端分离

基于node.js的前后端分离
1、在前端加了一个服务器,前后端仍然是JSON交互
2、用户浏览器和前端服务器交互是HTML文本
3、前端这方面没什么缺点了,再来看后端
4、后端全扔一个JVM里面,显然性能有限
5、因此有了SOA

五、SOA(面向服务的架构)

面向服务SOA架构
1、避免每个服务器上所有后端服务全扔一个JVM里面
2、后端服务分成很多个服务器,每个服务器负责自己的service。即一个功能一个服务器
3、服务和服务之间通过一个Service接口进行交互
4、SOA最大的缺点是服务会down掉,比如这张图中间的Enterprise Service Bus如果down掉就全挂了

六、分布式架构

分布式1
1、增加多个服务器的时候,需要增加一个Load Balancer即负载均衡调度器,与之相关有很多种负载均衡策略,比如轮询、最小连接等。

分布式2
1、CDN解决不同地区访问速度的问题
2、Reverse proxy server反向代理服务器,可以缓冲用户请求
3、数据库读写分离

七、微服务架构

微服务架构
1、首先服务按照业务的领域来分,order订单就是订单,Inventory库存就是库存,product catalog产品目录就是产品目录
2、划分的非常彻底,数据库都是分开的,SOA里数据库不是分开的
3、各个服务相当于分开了,可以分开测试,分开上线
4、微服务是当下最火的服务器架构

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值