分布式核心理论知识

分布式基础理论

什么是分布式系统

分布式系统是若干个独立的计算机的集合,这些计算机对于用户来说就像单个相关系统。分布式系统是建立在网络之上的软件系统。

随着互联网的发展,网站应用规模的不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,急需一个治理系统确保架构之间有条不絮的进行。

发展演变

在这里插入图片描述

单一应用架构

当网站流量很小的时候,只需要一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查的数据访问架构(ORM)是关键。这种架构就是最早期的讲所有的业务、前端页面、数据库、模块都部署到一台服务器。扩展性和修改都很差。

垂直应用架构

当访问量逐渐增大,单一应用增加机器带来的加速越来越小,提升效率的方法之一是将应用拆分成互不相干的几个应用,以提升效率。此时,用于给加速前端页面开发的web框架(MVC)是关键。

分布式服务架构

当垂直应用越来越多,应用之间的交互不可避免时,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能够更快速的相应多变的市场需求。此时,用于提高业务复用及其整合的分布式服务框架RPC是关键。RPC(远程过程控制)因为各个模块之间需要进行调用,存取数据,但是不在一台服务器上,所以需要有一个RPC来进行管理控制,而dubbo就是RPC框架。

流动计算架构

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

RPC

RPC【Remote Procedure Call】是指远程过程调用,是一种进程通信方式,他是技术的思想不是具体规范。
他允许一个程序调用另一个地址空间的过程或函数,而不用程序员显示编码这个远程调用的细节。程序员无论调用本地的还是远程的函数,本质上编写的调用代码基本相同。

RPC有两个核心模块:通讯,序列化。
RPC框架有很多:例如dubbo、gRPC、HSF(High SPeed Service Framework)。

RPC原理

一次完整的RPC调用流程(同步调用)如下

  1. 服务消费方调用以本地调用当时调用对应的服务
  2. client Stub接收到调用后负责将方法、参数、组装成能够进行网络传输的消息体;
  3. client Stub找到服务地址,将消息发送到服务端;
  4. server Stub收到消息后进行解码;
  5. server Stub根据解码结果调用本地服务;
  6. 本地服务开始执行并将执行的结果返回server Stub
  7. server Stub 将返回结果打包成消息发送给消费方
  8. client Stub 接收消息,并进行解码;
  9. 服务消费方得到最终结果;

RPC 框架的目标就是将红色步骤封装起来,这些细节对用户来说是透明的,不可见的。

posted on 2020-05-23 17:04  青山是谁  阅读(37)  评论(0编辑  收藏  举报