一:为什么会出现RPC呢?


当公司业务量还是很小的时候,所有的程序都放置在一台机器上,程序之间通过函数或者类来调用。
1:当公司的业务发展越来越大,业务线越来越多,公司后端人员也越来越多,分布在不同的业务线,不同的项目里,其他项目组开发了一个服务,另外一个组想调用这个服务,这时候该怎么办?
2:业务越来越多,我们需要划分不同的业务模块,需要把公共服务独立出来,如何调用这些公共服务和不同的业务模块提供的服务?
3:如果后端有2个开发组,做着的不同业务,并且使用不同的开发语言,比如php和java,那么他们之间的业务怎么相互进行调用呢?
这时候 rpc 就应运而生了,它可以在不同的模块不同语言之间进行通信。

所以 rpc 是业务变得越来越多,需要对业务进行拆分,不同的模块提供不同的服务时,各服务模块之间相互进行通信的一种方式。

二:RPC是什么?


RPC(Remote Procedure Call Protocol)——远程过程调用协议。
它是一种通过网络从远程计算机程序上请求服务,而调用者不需要了解底层网络技术的协议,它让调用者对网络通信这些细节是透明的。
rpc采用的是客户端<----->服务器模式。 请求程序是一个客户机,而服务提供程序就是一个服务器。
rpc的通信模型如下图:

三:有哪些RPC框架


各大互联网公司都根据自己公司业务特点开发了自己的rpc框架,如阿里巴巴的hsf、dubbo(开源)、Facebook的thrift(开源)、Twitter的finagle(开源)等

下一篇我们分析下thrift框架,看看rpc框架是怎么进行通信的,它的原理是什么?

RPC简介的更多相关文章

  1. RPC简介与hdfs读过程与写过程简介

    1.RPC简介 Remote Procedure Call 远程过程调用协议 RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些 ...

  2. 01 . RPC简介原理及用Go实现一个简单的RCP

    RPC简介 本地过程调用 // 正常情况下程序的执行和调用情况.例如有如下go语言代码: package main import "fmt" func main() { var a ...

  3. RPC简介及原理

    简介 RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用). 越底层, ...

  4. rpc简介、原理、实例

    简介 RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过 ...

  5. RPC简介与Thrift框架

    RPC,全称是remote process call,远程过程调用,简单来讲就是调用部署在另一台服务器上的服务或者被部署在另一台服务器上的服务调用.由于各服务部署在不同机器,服务间的调用免不了网络通信 ...

  6. RPC简介及框架选择

    简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点.常见RPC框架,gRPC及序列化方式Protobuf等 HTTP协议 http协议是基于tcp协议的,tcp协议是流式 ...

  7. 分布式系统的发展演变以及RPC简介

    场景 什么是分布式系统 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统. 分布式系统是建立在网络之上的软件系统. 注: 博客: https://blog.csdn.net/b ...

  8. [转]新兵训练营系列课程——平台RPC框架介绍

    原文:http://weibo.com/p/1001643875439147097368 课程大纲 1.RPC简介 1.1 什么是RPC 1.2 RPC与其他远程调用方式比较 2.Motan RPC框 ...

  9. abelkhan中的rpc框架

    rpc简介:http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/index.html 常见的rpc框架有protob ...

随机推荐

  1. JavaScript 使用 toJSON 方法格式化日期

    toJSON 方法可以将 Date 对象转换为 ISO-8601 标准的字符串:YYYY-MM-DDTHH:mm:ss. sssZ var date = new Date(); // toJSON() ...

  2. 3.docker基础架构

    docker是一个典型的c/s架构产品. dockerd :为客户端提供  RESTFUL API,响应来自客户端的请求, 采用模块化的架构, 通过专门的 Engine 模块来分发管理各 个来自客户端 ...

  3. 1.ansible基本参数介绍

    想使用ansible 先--help学习下基本的options吧小兄弟1: -m 指定模块名称只有一个模块command 可以省略:-M 指出模块路径来加载2: -a 指定模块参数就是模块的内容你知道 ...

  4. Windows Server 2012 Hyper-V 快照

    快照 Hyper-V 可提供擷取執行中虛擬機器快照的能力,因此可輕易地回復至前一狀態,對於測試環境相當有幫助. 快照的功用雖然很不錯,不過每次建立快照時都是會消耗相當的硬碟資源,尤其目前的快照點和上一 ...

  5. dom定位的三种元素

    1.通过id #XXX 2.通过标签  xxx 3.通过类  .xxx

  6. 【题解】K乘积

    题目描述 有N个数,每个数的范围是[-50,50],现在你要从这N个数中选出K个,使得这K个数的乘积最大. 输入格式 第一行,N和K. 1 <= N <= 50.  1 <= K & ...

  7. Android stadio 生成项目 Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE)

    解决方法 File-->Project-->Structrue-->SDK Location-->JDK location Use embedded JDK 前面勾去掉,指定一 ...

  8. bzoj1014 火星人 (hash+splay+二分答案)

    求公共前缀的问题可以用hash+二分来解决,但这个是动态的,所以我们用平衡树来维护区间的hash值 复杂度$O(mlog^2n)$ #include<bits/stdc++.h> #def ...

  9. 51nod1079 poj2891 中国剩余定理与其扩展

    题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1079 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K. ...

  10. 群福利:Redis云服务器免费领取(附Redis安装和连接远程连接Redis案例)

    Redis安装:在线体验:https://try.redis.io Ubuntu:sudo apt-get install redis CentOS:yum install redis (root权限 ...