zoukankan      html  css  js  c++  java
  • 分布式核心理论知识

    分布式基础理论

    什么是分布式系统

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

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

    发展演变

    在这里插入图片描述

    单一应用架构

    当网站流量很小的时候,只需要一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查的数据访问架构(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 框架的目标就是将红色步骤封装起来,这些细节对用户来说是透明的,不可见的。

  • 相关阅读:
    Excel 实用技巧之一
    Windows操作技巧 之二(持续更新)
    ASCII码表
    Excel 函数VLOOKUP初学者使用指南
    Windows 操作小技巧 之一(持续更新)
    Excel 使用宏批量修改单元格内指定文字为红字
    Excel 使用CHIINV函数和GAMMA.DIST函数绘制卡方分布
    新手使用R的注意事项
    如何在R中加载”xlsx”包
    增值税——基础知识
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181376.html
Copyright © 2011-2022 走看看