RPC的理解
来源:互联网 发布:js获取一个input的值 编辑:程序博客网 时间:2024/05/17 15:59
转载:http://www.cnblogs.com/cyfonly/p/6059374.html
1、所谓的RPC
在了解 Thrift 之前,先来简单科普一下什么是 RPC(远程过程调用)。
先看下面这个栗子:
public void invoke(){ String param1 = "my String 1"; String param2 = "my String 2"; String res = getStr(param1, param2); System.out.println("res=" + res)}private String getStr(String str1, String str2){ return str1 + str2;}
这是一个最简单不过的本地函数调用代码,调用方和被调用方都在一个程序内部,属于进程内调用。
CPU 在执行调用时切换去执行被调用函数,执行完后再切换回来执行后续的代码。对调用方而言,执行被调用函数时会阻塞(非异步情况下)直到调用函数执行完毕。过程如图
接下来看个 RPC 调用的栗子:
public void test(){ TestQry.Client client = getClient("192.168.4.222", 7800, 5000); String param1 = "my String 1"; String param2 = "my String 2"; String res = client.getStr(param1, param2); System.out.println("res=" + res);}private TestQry.Client getClient(String ip, int port, int timeOut) throws Exception{ TSocket tSocket = new TSocket(); TTransport transport = new TFramedTransport(tSocket); tTransport.open(); TProtocol protocol = new TBinaryProtocol(tTransport); return new TestQry.Client(protocol);}
这是一个进程间调用,调用方和被调用方不在同一个进程(甚至不同的服务器或机房)。
进程间调用需要通过网络来传输数据,调用方在执行 RPC 调用时会阻塞(非异步情况下)直到调用结果返回才继续执行后续代码。过程如图。
一言以蔽之,RPC 是一种通过网络从远程计算机程序上请求服务的方式,它使得开发包括网络分布式多程序在内的应用程序更加容易。
阅读全文
0 0
- hadoop的rpc理解
- RPC的理解
- RPC的理解
- rpc的理解。
- 关于RPC的简单理解
- RPC理解
- RPC理解
- 理解RPC和LPC的概念
- 关于RPC与MQ异同的理解
- 关于RPC协议的通俗理解
- 关于RPC协议的通俗理解
- 理解Android系统的进程间通信原理(一)----RPC中的-代理模式 -RMI-RPC
- android RPC深入理解
- 理解Binder RPC机制
- HDFS与RPC理解
- RPC架构简单理解
- rpc架构理解
- 理解Hadoop通信 RPC
- mysql常用命令
- 区块链与征信
- kali Linux 下 python 3.6.2 配置 +Pip3 配置
- SwipeRefreshLayout源码分析+自定义UC头条下拉刷新Demo
- hdu2048 神、上帝以及老天爷(C语言)
- RPC的理解
- [RK3288][Android6.0] Apk设置显示旋转过程小结
- 如何训练Tesseract 4.0
- SQL小测试
- Vend Aging Report数据存储转换图
- Eclipse svn插件安装详细教程
- HashMap
- android:supoort.v4.view.ViewCompat.getDisplay(Landroid/view/View;)Landroid/view/Display;
- String类——练习(4)