Java面试——RPC协议
- Java面试——RPC协议 推荐度:
- 相关推荐
Java面试——RPC协议
涉及到分布式方面知识的话,RPC协议是逃不开的,所以在此记录一下RPC协议。
什么是RPC协议
RPC协议(Remote Procedure Call)远程过程调用,简单的来说:RPC协议是一种通过网络从远程计算机程序获取服务的协议。
通俗理解:A计算机提供一个服务,B计算机可以像使用本地服务一样去调用(或使用)A计算机的服务。
具体来说RPC协议可以分成4个角色Client、Client stub、Server、Server Stub。
Client是调用方、Server是服务的提供方
Client调用Server中的服务。
Client Stub表示客户端存根,专门用来存储服务端服务的地方
Server Stub表示服务端存根,专门用来接收客户端发送过来的消息,然后解析消息内容(反序列化)。
RPC协议与HTTP协议的区别?
功能特性上:
HTTP:是属于应用层的超文本传输协议,是万维网数据通信的基础,主要在网页端和服务端的数据传输
RPC:是远程过程调用协议,他的定位是实现不同计算机应用的数据通信,屏蔽通信层的复杂性。
原理实现上:
HTTP:是一个已经实现并成熟的应用层协议,其有完善的报文格式(即请求行、请求头、请求体)
RPC:只是一种协议规范,他没有具体的实现,只要按照RPC规范实现,都可以。
最后这俩其实都是应用层协议,并且基本上都是基于TCP协议(HTTP3.0不是TCP),同时RPC是一种标准协议,所以实现方式比较多样化,有RPC也可以用HTTP来实现(例如:gRPC、OpenFegin)。
最新文章
- Video.js国际化配置
- Leetcode 【1334. 阈值距离内邻居最少的城市】
- 【Linux网络】1分钟使用shell脚本完成DNS主从解析服务器部署(适用于centos主机)
- 面试官:【后端一次性返回10万条数据怎么处理后端发送大数据量的数据如何处理】
- 青少年编程学习 等级考试 信奥赛NOI蓝桥杯NOCGESP等比赛资料合集
- hadoop 大数据环境配置 ssh免密登录 centos配置免密登录 hadoop(四)
- 【git】解决git报错:ssh:connect to host github.com port 22: Connection timed out 亲测有效
- python爬虫整理
- 罕见!阿里云爆发史诗级故障!
- Haskell添加HTTP爬虫ip编写的爬虫程序
- Go使用命令行输出二维码
- 【Python Opencv】Opencv画图形
- 【目标检测】RCNN 的边界框回归损失函数
- uniapp: 实现pdf预览功能
- 29、TS中的类
- java中的Closeable与AutoCloseable
- 4.CentOS7安装MySQL5.7
- 解决 Django 开发中的环境配置问题:Windows 系统下的实战指南20231113
- 国科云:浅谈DNS缓存投毒常见类型和防御策略
- Ps:通过显示大小了解图像的打印尺寸