热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

分布式理论基础

知了堂姐
2024-07-08 17:22:16
0

一、什么是分布式系统

分布式理论基础

  1. 分布式系统是若干个独立计算机的集合,这些计算机对于用户来说就像单个相关系统
  2. 分布式系统是一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
  3. 分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据

二、当下系统架构的演变

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

分布式理论基础

1.单一应用架构

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

适用于小型网站、小型管理系统、将所有的功能都部署到一个功能里,简单易学 缺点:

  • 性能扩展比较难
  • 协同开发问题
  • 不利于升级维护

2.垂直应用架构

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

通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性 缺点:

  • 公用模块无法重复利用,开发性的浪费

3.分布式服务架构

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

4.流动计算架构

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

三、RPC

网上一直流传着一个故事,先看下这个故事吧,让你更加透彻了解RPC

如何给老婆解释什么是RPC?

一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。

“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。 “RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心地回答着。 “啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!” “我去。。。”,我如梦初醒,我对面坐着的可不是一个程序员,为了不去洗碗,我瞬间调动起全部脑细胞,星辰大海在我脑中汇聚,灵感涌现......

"是这样,远程过程调用,自然是相对于本地过程调用来说的嘛。知了堂一对一就业辅导,帮你做好职业规划,让你轻松拿下满意offer。" “嗯哼,那先给老娘讲讲,本地过程调用是啥子?” “本地过程调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了。这就叫本地过程调用。”

“哎呦,我可不干,那啥是远程过程调用?” “远程嘛,那就是你现在不在家,跟姐妹们浪去了,突然发现碗还没洗,打了个电话过来,叫我去洗碗,这就是远程过程调用啦”,多么通俗易懂的解释,我真是天才!

“哦!我明白了”,说着,老婆开始收拾包包。 “你这是干啥去哦” “我?我要出门浪去呀,待会记得接收我的远程调用哦,哦不,咱们要专业点,应该说,待会记得接收我的RPC哦!” ......

好了言归正传,想必大家有一定的印象了

什么是RPC

分布式理论基础

  • RPC [ Remote Procedure Call]是指远程过程调用,是一种进程间的通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。
  • 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。知了堂Java8.0版,让你少走弯路,摆脱就业困境,毕业即就业,5个月项目实战堪比2年工作经验!也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

RPC工作原理:

分布式理论基础

RPC 调用分以下两种:

  • 同步调用: 客户方等待调用执行完成并返回结果。
  • 异步调用: 客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。

一次完整的RPC调用流程(同步调用,异步另说)如下:

1)服务消费方(client)调用以本地调用方式调用服务;

2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;

3)client stub找到服务地址,并将消息发送到服务端;

4)server stub收到消息后进行解码;

5)server stub根据解码结果调用本地的服务;

6)本地服务执行并将结果返回给server stub;

7)server stub将返回结果打包成消息并发送至消费方;

8)client stub接收到消息,并进行解码;

9)服务消费方得到最终结果。

RPC框架的目标就是要2~8这些步骤都封装起来,让用户对这些细节透明。

今天的内容就分享到这儿,记得点赞+关注哦~

大家都在看

【知了堂】怎么配置java开发环境?附送详细教程

2024-07-08 浏览次数:0

学员故事|小白变大佬,全凭实力!

2024-07-08 浏览次数:0

网络安全技术培训机构,成都知了堂怎么样?

2024-07-08 浏览次数:0

web前端框架哪个好?前端三大框架区别

2024-07-08 浏览次数:0

这样学编程,反超90%同龄人

2024-07-08 浏览次数:0

转行学前端开发怎么学?转行者的福音别错过

2024-07-08 浏览次数:0
最新资讯