什么是“分布式服务框架——RPC”
文章目录
- 一、应用架构的发展过程:
- 1.1 单一应用架构
- 1.2 垂直应用架构
- 1.3 分布式服务架构
- 1.4 流动计算架构
- 二、RPC
学习视频链接,以示尊重:https://www.bilibili.com/video/BV1PE411i7CV?p=57
一、应用架构的发展过程:
1.1 单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。
缺点:
- 性能扩展比较难
- 协同开发问题
- 不利于升级维护
1.2 垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性。
缺点:公用模块无法重复利用,开发性的浪费
1.3 分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
1.4 流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键。
二、RPC
RPC(即 Remote Procedure Call)是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。
也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。为什么要用RPC呢?就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如不同的系统间的通讯,甚至不同的组织间的通讯,由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。RPC就是要像调用本地的函数一样去调远程函数;
推荐阅读文章:https://www.jianshu.com/p/2accc2840a1b
一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。
“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。
“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。
“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”
“我去。。。”,我如梦初醒,我对面坐着的可不是一个程序员,为了不去洗碗,我瞬间调动起全部脑细胞,星辰大海在我脑中汇聚,灵感涌现…“是这样,远程过程调用,自然是相对于本地过程调用来说的嘛。”
“嗯哼,那先给老娘讲讲,本地过程调用是啥子?”
“本地过程调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了。这就叫本地过程调用。”“哎呦,我可不干,那啥是远程过程调用?”
“远程嘛,那就是你现在不在家,跟姐妹们浪去了,突然发现碗还没洗,打了个电话过来,叫我去洗碗,这就是远程过程调用啦”,多么通俗易懂的解释,我真是天才!“哦!我明白了”,说着,老婆开始收拾包包。
“你这是干啥去哦”
“我?我要出门浪去呀,待会记得接收我的远程调用哦,哦不,咱们要专业点,应该说,待会记得接收我的RPC哦!”
…作者:柳树之
链接:https://www.jianshu.com/p/2accc2840a1b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
RPC基本原理
RPC两个核心模块:通讯,序列化
什么是“分布式服务框架——RPC”相关推荐
- 分布式服务(RPC)+分布式消息队列(MQ)面试题精选
分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作 ...
- 分布式服务框架原来与实践 读书笔记一
一 分布式服务框架诞生背景 分布式服务框架的诞生并非偶然,当服务发展到一定阶段之后,会面临很多新的挑战.包括新的商业模式,已有技术架构无法支撑业务快速发展等为了保证业务的快捷.健康发展,往往会产生新的 ...
- 分布式服务框架之Dubbo简介
2019独角兽企业重金招聘Python工程师标准>>> 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个 ...
- dubbo 分布式服务框架 介绍
Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...
- Dubbo(一) 开始认识Dubbo,分布式服务框架
引言: 以前的车马很慢,一生只够爱一个人 以前的网站人很少,一个单应用服务着一个人 -------------------- 现在,动不动就谈什么高并发,千万级访问.单应用?BOOM!分分钟爆炸.于是 ...
- XXL-RPC v1.3.2,分布式服务框架
Release Notes 1.泛化调用:服务调用方不依赖服务方提供的API: 2.新增通讯方案 "NETTY_HTTP": 3.新增序列化方案 "KRYO": ...
- 阿里分布式服务框架Dubbo的架构总结
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...
- 阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访
专家访谈 目录(?)[-] 先来个自我介绍吧! Dubbo是什么?能做什么? Dubbo适用于哪些场景? Dubbo的设计思路是什么? Dubbo的需求和依赖情况? Dubbo的性能如何? 和淘宝HS ...
- Dubbo分布式服务框架简介
概览 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点: 自开源后,已有不 ...
最新文章
- CISCO 2511终端服务器配置
- 单片机实现环形队列_单片机模块化程序: 难道有环形队列串口发送数据就万事大吉了吗...
- 计算机里多媒体的名词解释,多媒体技术中的常见名词解释 众德伟业
- 【译】Pure Proof-of-Stake Blockchains: Secure Blockchain Decentralization via Committees
- ITK:计算边缘电势
- 即席和即兴_即兴说话小课堂
- 推荐:万能模板,十分钟打造电商首焦Banner
- 《企业软件交付:敏捷与高效管理精要》——2.8 结论
- mysql索引如何分裂节点_从MySQL Bug#67718浅谈B+树索引的分裂优化(转)
- 2016.9.18 --- Shenyang ol
- Idea 新建类 快捷键
- Intellij IDEA 设置字体加粗
- 三极管构成的流水灯电路分析
- 极客时间、慕课网看课感悟
- 一个C语言编写的坦克大战游戏
- Linux文件系统及文件储存方式
- 自然语言处理在电商的技术实践
- 计算机底层架构(偏硬件)综述
- 32岁转行0基础学Html5,30岁没学历从零开始学什么好,30岁改行的5个职业
- 人大金仓适配mysql和oracle函数适配