什么是分布式系统?

《分布式系统原理与范型》定义:

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

老式系统(单一应用架构)就是把一个系统,统一放到一个服务器当中然后每一个服务器上放一个系统,如果说要更新代码的话,每一个服务器上的系统都要重新去部署十分的麻烦。

分布式系统就是将一个完整的系统拆分成多个不同的服务,然后在将每一个服务单独的放到一个服务器当中。(三个臭皮匠赛过诸葛亮)

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

应用架构的发展演变

ORM架构

单一应用架构:一个项目装到一个服务器当中,也可以运行多个服务器每一个服务器当中都装一个项目。
缺点:1.如果要添加某一个功能的话就要把一个项目重新打包,在分别部署到每一个服务器当中去。

2.如果后期项目越来越大的话单台服务器跑一个项目压力会很大的。会不利于维护,开发和程序的性能。

MVC架构

垂直应用架构:将应用切割成几个互不相干的小应用,在将每个小应用独立放到一个服务器上,如果哪一个应用的访问数量多就多加几台服务器。

缺点:应用不可能完全独立,大量的应用之间需要交互

分布式服务架构RPC

分布式应用架构(远程过程调用):当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

什么叫RPC

RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。

即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

RPC基本原理

RPC两个核心模块:通讯,序列化:

rpc框架有很多如:dubbo、gRpc、Thrift、HFS(High Speed Service Framework)

SOA

流动计算架构:在分布式应用架构的基础上增加了一个调度、治理中心基于访问压力实时管理集群容量、提高集群的利用率。

用于提高机器利用率的 资源调度和治理中心(SOA) 是关键 (不浪费计算机资源)

分布式应用架构的发展演变RPC的更多相关文章

  1. dubbo入门学习(一)-----分布式基础理论、架构发展以及rpc、dubbo核心概念

    一.分布式基础理论 1.什么是分布式系统? <分布式系统原理与范型>定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed ...

  2. 从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?

    作者 | 易立 阿里云资深技术专家 导读:从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的.与时俱进的技术架构.本篇文章从企业分布式应用架构层面介绍 ...

  3. [转帖]从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?

    从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑? 2019-10-08 10:26:28 阿里云云栖社区 阅读数 54   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...

  4. Android发展演变与开发环境搭建

    本人也算是一名比较会玩的Android手机用户,常常关注Android发展的最新情况,并且每年都会熬夜看谷歌的I/O大会,总会第一时间刷入最新的Android版本.接下来简单谈一下Android版本的 ...

  5. 调研一类软件的发展演变—聊天软件( 1000-2000 words, in Chinese)

    因为本人平时对聊天软件的涉及比周边其他同学而言所涉及的是比较多的.所以说想写写这个东西.(ps本文里面的具体通讯信息的时间安排不分先后) 也许最起初的通讯信息的传达是利用.烽火狼烟这一类可以远距离视觉 ...

  6. 作业一_随笔3_调研Android的开发环境的发展演变

    调研某一移动应用/平台的开发环境的发展演变:Android 其实,一开始,我只知道,苹果手机用IOS系统,其他很多手机时候安卓系统.我百度知道Android开发主要是android studio和Ec ...

  7. Android开发环境的发展演变调研

    Android开发环境的发展演变调研 前几年比较多的方法是用JDK+eclipse+ADT,该方法除了要配置JDK的路径之外, 还要在eclipse里面打开SDK Manage进行相应的操作.不过近两 ...

  8. ARM和STM32的区别及ARM公司架构的发展

    ARM和STM32的区别及ARM公司架构的发展 转:https://www.cnblogs.com/kwdeblog/p/5260348.html ARM是英国的芯片设计公司,其最成功的莫过于32位嵌 ...

  9. Python 中 -m 的典型用法、原理解析与发展演变

    在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...

  10. 【转帖】处理器史话 | 当Power架构的发展之路遭遇“滑铁卢”

    处理器史话 | 当Power架构的发展之路遭遇“滑铁卢” https://www.eefocus.com/mcu-dsp/366740 (8)Power8:决定了 Power 平台的未来发展 2014 ...

随机推荐

  1. PyTorch视觉模型库torchvision.models介绍

    安装pytorch时我们一般都是会一并选择安装自带的视觉模型库 torchvision ,  该库不仅有经典的视觉模型结构同时还提供了对应参数的下载功能,可以说torchvision库是十分方便于研究 ...

  2. [POI2008] POC-Trains 题解

    前言 题目链接:洛谷. 时间复杂度和输入同阶的做法. 题意简述 有 \(n\)(\(n \leq 10^3\))个长 \(m\) 的字符串,\(q\)(\(q \leq 10^5\))次操作,交换两个 ...

  3. 同一块石头搬到了两次的List<Map> 转List<dto>的问题

    不多比比 it is shame to talking about this List<Map<String, Object>> maps = reader.readAll() ...

  4. 第 358 场周赛 - 力扣(LeetCode)

    第 358 场周赛 - 力扣(LeetCode) 2815. 数组中的最大数对和 - 力扣(LeetCode) 双for遍历即可 class Solution { public: int maxSum ...

  5. AtCoder Beginner Contest 313

    AtCoder Beginner Contest 313 - AtCoder A - To Be Saikyo (atcoder.jp) 从\(a_1 \dots a_{n-1}\)找出最大值与\(a ...

  6. MPTCP(五):MPTCP路径管理工具iproute2/ip-mptcp编译及安装

    简介 ip-mptcp是一个MPTCP路径管理工具,它可以决定哪些链路允许作为MPTCP子流存在 仅对MPTCPv1有效 在支持MPTCPv1的内核中使用man ip-mptcp可以查看相关帮助 gi ...

  7. bazel简介(二)——从makefile向bazel转变(使用genrule)

    0x01 背景 上篇中已经介绍了bazel的基本工作原理和相关的概念.这篇将继续介绍下,现有的makefile构建工程如何切换到bazel构建系统. bazel提供了丰富的扩展方式,当然也支持从目前的 ...

  8. 【VMware VCF】VCF 5.2:挂载远程 vSAN 数据存储。

    VMware vSAN 解决方案中,为了充分利用 vSAN HCI 集群内的存储资源, vSAN HCI 和 vSAN HCI 集群之间可以相互共享存储资源,这种解决方案早期叫 vSAN HCI Me ...

  9. Linux 磁盘分区和格式化

    分区 常用命令行工具: fdisk:适用于 MBR 分区表 gdisk:适用于 GPT 分区表 parted:适用于 MBR 和 GPT 分区表,功能更强大.它还有一个 GUI 版本,名为 gpart ...

  10. Windows C 盘瘦身

    修改 Window 服务器虚拟内存位置 | 博客园 怎么更改电脑默认储存位置呢?| CSDN Win11 磁盘清理怎么没有了?Win11 磁盘清理在哪打开?| 搜狐网 快速清理 Windows 大文件 ...