博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RPC简介
阅读量:6187 次
发布时间:2019-06-21

本文共 1022 字,大约阅读时间需要 3 分钟。

  RPC是指远程过程调用,也就是说两台服务器,一个应用部署在其中一台服务器上,想要调用另外一台服务器上应用提供的函数(方法),由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
 
  RPC 采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。
 
  实现两台服务器之间的交互,必须得通过通信协议,RPC的通讯协议实际上是使用TCP/IP协议(可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接),只不过RPC将其进行了封装处理,只需要调用就可以进行连接,不必关心底层,这一点与如今的框架的目的相同(将工作的中心放在了业务流程上)。那么如何找到目标服务器!仅仅通过IP是不行的,因为你无法确定目标服务器是否也同时在为其它端(泛指客户端,web端,也可以是服务端)提供其它服务,所以,需要一个标示,也就是端口,其它端就能够准确无误的找到自己所需要的进程,并通过进程号,找到目标服务,调用其提供的数据。
  
  那么RPC的安全性如何?TCP/IP通信协议是基于二进制的,在内存中的参数的值要序列化成二进制的形式,也就是序列化(Serialize)或编组(marshal),通过寻址(也就是IP+POST)和传输将序列化的二进制发送,而接收方收到请求后,则需要对参数进行反序列化(序列化的逆操作),恢复为内存中的表达方式,然后找到对应的方法进行本地调用,然后得到返回值,返回值也需要经过序列化的方式发送,调用方接收到以后,再反序列化,恢复为内存中的表达方式……

使用RPC的优点是,不需要了解底层网络技术的协议,为通信程序之间携带信息数据。在网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。

本片摘录自:https://www.cnblogs.com/guoximing/articles/6030334.html

转载于:https://www.cnblogs.com/FengGeBlog/p/9935105.html

你可能感兴趣的文章
lduan server 2012 IIS 远程管理(二十六)
查看>>
kube-shell安装与使用
查看>>
Python基础学习(三)
查看>>
centos7 下yum安装mysql8.0.15
查看>>
NIO-Selector类详解
查看>>
开启HTTPS全网加密新时代 亚洲诚信与中科三方签约战略合作
查看>>
运行JAR包 提示没有主清单属性解决办法
查看>>
2018年第三季欧洲DDoS攻击量急剧增加
查看>>
人体运动轨迹的人工智能动画模拟
查看>>
spring,orm 题目
查看>>
Java 回调函数
查看>>
2018/02/13
查看>>
echarts(二)
查看>>
Hibernate映射文件结构
查看>>
rollPagerView引导页轮播图
查看>>
redis集群介绍,redis集群搭建配置,redis集群操作
查看>>
Gitbilt hooks 简单的账户操作权限控制
查看>>
[3.30]#珠海GDG#成立大会胜利闭幕!
查看>>
mybatis 批量Update(2)
查看>>
RabbitMQ安装
查看>>