Dubbo背景--延伸其他概念

2019-12-30  本文已影响0人  苏西月

架构的演进

在这里插入图片描述

单一应用架构

  当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(\color{#FF6666}{ORM})是关键。

垂直应用架构

  当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(\color{#FF6666}{MVC})是关键。

分布式服务架构

  当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(\color{#FF6666}{RPC})是关键。

什么是RPC?

  RPC——Remote Procedure Call,远程过程调用。 即服务A调用服务B的方法,那就需要解决如下两个问题:

在这里插入图片描述

  图中Client对应服务A,Server对应服务B

RPC--参考资料

如何给老婆解释什么是RPC
如何实现一个简单的RPC

RPC和REST区别

RPC

在这里插入图片描述
REST
在这里插入图片描述
  在微服务设计中,一个服务A如果访问另一个Module下的服务B,可以采用HTTP REST传输数据,并在两个服务之间进行序列化和反序列化操作,服务B把执行结果返回过来。

  由于\color{#FF6666}{Http}在应用层中完成,整个通信的代价较高,远程过程调用(RPC)中直接基于\color{#FF6666}{TCP}进行远程调用,数据传输在传输层TCP层完成,更适合对效率要求比较高的场景,RPC主要依赖于客户端和服务端之间建立Socket链接进行,底层实现比REST更复杂。

延伸:dubbo基于TCP,spring cloud Feign基于HTTP

Spring Cloud Feign--参考资料

Spring Cloud 之 Feign

GRPC--类似dubbo的调用过程了

在这里插入图片描述

RPC、REST、GRPC比较--参考链接

什么是RPC

流动计算架构

  当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时提高机器利用率的资源调度和治理中心(\color{#FF6666}{SOA})是关键。

SOA

  SOA(Service Orientd Architecture)“面向服务的架构”--是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在于操作系统进程中。各个服务之间通过网络调用。

架构特点

微服务架构

  微服务架构--其实和SOA架构类似,微服务是在SOA上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

架构特点

主要区别

在这里插入图片描述

SOA--参考链接

SOA架构和微服务架构的区别

上一篇 下一篇

猜你喜欢

热点阅读