SpringCloud:微服务与分布式

WEB应用的架构发展:

  1. 单体架构

    在web应用的早期,我们把说有的业务都放在一个项目中。将这个含有所有业务的项目打包成一个War包放在tomcat中。即一个项目就只存在一个服务器中。
    下图为单体架构。
    解释:
    1.一个台服务器中可以有一个或者多个tomcat,我们可以通过修改tomcat的端口号同时启动多个tomcat。
    2.一个tomcat中可以有多个war包,即多个项目或多个应用。每个应用之间是相互独立的。应用直接无法通信。
    例如,淘宝有一个war包,美团有一个war包。他们都是相互独立的应用。
    

在这里插入图片描述

  1. MVC(纵向拆分)和后台三层结构

    MVC

    由于web应用的耦合性高、业务越多类越多、代码越多不易于开发。后面就出现了MVC架构。
    M:Model 模型,专注于数据和业务。
    V:View  视图,专注于视图,即界面的结构、行为和美化。
    C: Controller 控制器,专注于模型和视图直接的适配和控制。
    将web应用的开发分为了3层。
    解释:
    1.以前在MVC架构的出现,都是在servlet中直接编写前端代码,通过字符拼接的方法得到前端页面返回给用户。(servlet相当于现在的Controller)
    2. 现在,
          - MVC架构中前端页面发起请求
          - Controller层接收前端的请求
          - Controller处理得到结果,将结果封装成Model(数据模型)
          - Controller指定View(视图模板),渲染数据。得到前端页面。注:这里的视图模板可以为JSP页面,也可以是其他的视图模板。
          - 返回页面给用户。
    

在这里插入图片描述

后台三层架构

后台的三层架构为Controller层、service层、Dao层:
Controller层:负责接收请求、调用服务(service)、返回数据模型(model)和选择视图模板(view)。(可以称作控制器、路由等)
service层:主要负责业务处理。处理数据,调用持久化层(Dao),将结果返回给controller层。
Dao层:主要负责持久化数据,即将数据存储到磁盘、数据库中。

下图为后台三层架构和MVC结构

在这里插入图片描述

  1. 模块化(横向拆分)

    为了区别业务和系统功能,就有了模块化。可以将一个系统分为多个功能模块。不同的功能模块负责不同的业务。
    

在这里插入图片描述

  1. 微服务架构(业务拆分,服务细分)

    拆分前:订单--交易--支付--物流--评论(一个购物服务)
    拆分后:订单服务、交易服务、支付服务、物流服务、评论服务。将这些服务相互调用实现购物服务的功能。
    每个服务专注于提供自己的这个服务。
    解释:
    1.实际就像将上面单个应用的中模块一一拆分为一个个的服务,微服务(微应用)。
    

在这里插入图片描述

  1. 分布式

    将不同的服务放在不同的服务其或者相同服务器的不同端口(即不同域中)。通过不同域中服务的相互调用实现某项业务功能,就是分布式。
    分布式要解决的问题。
    - 服务的如何注册?
    - 服务的如何发现?
    - 服务间如何调用?
    - 服务间如何通信?
    - 如何路由?
    - 服务突然崩了怎么办?
    - 并发量太大怎么办?
    - 等一些列问题
    

    下图为服务间的调用图(未用服务中心):

在这里插入图片描述

下面两个图为使用了服务中心的架构图:
在这里插入图片描述
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值