文章目录

  • 一、应用架构的发展过程:
    • 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”相关推荐

  1. 分布式服务(RPC)+分布式消息队列(MQ)面试题精选

    分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作 ...

  2. 分布式服务框架原来与实践 读书笔记一

    一 分布式服务框架诞生背景 分布式服务框架的诞生并非偶然,当服务发展到一定阶段之后,会面临很多新的挑战.包括新的商业模式,已有技术架构无法支撑业务快速发展等为了保证业务的快捷.健康发展,往往会产生新的 ...

  3. 分布式服务框架之Dubbo简介

    2019独角兽企业重金招聘Python工程师标准>>> 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个 ...

  4. dubbo 分布式服务框架 介绍

    Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...

  5. Dubbo(一) 开始认识Dubbo,分布式服务框架

    引言: 以前的车马很慢,一生只够爱一个人 以前的网站人很少,一个单应用服务着一个人 -------------------- 现在,动不动就谈什么高并发,千万级访问.单应用?BOOM!分分钟爆炸.于是 ...

  6. XXL-RPC v1.3.2,分布式服务框架

    Release Notes 1.泛化调用:服务调用方不依赖服务方提供的API: 2.新增通讯方案 "NETTY_HTTP": 3.新增序列化方案 "KRYO": ...

  7. 阿里分布式服务框架Dubbo的架构总结

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  8. 阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访

    专家访谈 目录(?)[-] 先来个自我介绍吧! Dubbo是什么?能做什么? Dubbo适用于哪些场景? Dubbo的设计思路是什么? Dubbo的需求和依赖情况? Dubbo的性能如何? 和淘宝HS ...

  9. Dubbo分布式服务框架简介

    概览 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点:        自开源后,已有不 ...

最新文章

  1. CISCO 2511终端服务器配置
  2. 单片机实现环形队列_单片机模块化程序: 难道有环形队列串口发送数据就万事大吉了吗...
  3. 计算机里多媒体的名词解释,多媒体技术中的常见名词解释 众德伟业
  4. 【译】Pure Proof-of-Stake Blockchains: Secure Blockchain Decentralization via Committees
  5. ITK:计算边缘电势
  6. 即席和即兴_即兴说话小课堂
  7. 推荐:万能模板,十分钟打造电商首焦Banner
  8. 《企业软件交付:敏捷与高效管理精要》——2.8 结论
  9. mysql索引如何分裂节点_从MySQL Bug#67718浅谈B+树索引的分裂优化(转)
  10. 2016.9.18 --- Shenyang ol
  11. Idea 新建类 快捷键
  12. Intellij IDEA 设置字体加粗
  13. 三极管构成的流水灯电路分析
  14. 极客时间、慕课网看课感悟
  15. 一个C语言编写的坦克大战游戏
  16. Linux文件系统及文件储存方式
  17. 自然语言处理在电商的技术实践
  18. 计算机底层架构(偏硬件)综述
  19. 32岁转行0基础学Html5,30岁没学历从零开始学什么好,30岁改行的5个职业
  20. 人大金仓适配mysql和oracle函数适配

热门文章

  1. 微信小程序快速刷流量方法分享编辑器
  2. 关于Spring Security ignoring失效
  3. ST-GCN运行报错解决
  4. 撞车之后,不要傻里傻气的!这里有绝招!
  5. Java 加static修饰符的含义
  6. 关于word 07中页码不连续的问题
  7. qtpython混合编程
  8. inflate方法两个参数和三个参数的区别
  9. ubuntu安装geckodriver 和 firefox
  10. 手机拍摄的视频太大怎么压缩?压缩视频这个方法就够了