栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RPC远程服务调用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RPC远程服务调用

1. 基本概念

跨网络、跨进程的方法调用因为客户端和服务端位于网络上不同的地址,要完成一次rpc调用,则需要以下步骤

首先建立网络连接建立连接后,双方需要按照某种约定的协议进行网络通信能正常通信后,服务端收到请求后需要以某种方式处理,处理完成后把请求结果返回给客户端为了减少传输数据大小,还需要对数据进行序列化与反序列化 2. 连接方式

可以基于HTTP通信

但是一次http通信就需要一次三次握手,四次挥手。反复建立和销毁tcp连接,速度不够快。基于TCP通信

也就是基于Socket通信,可以维持长连接,速度更快客户端和服务端通信还要有以下机制保证

链路存活检测,客户端定时发送给服务端心跳检测,检测链路状态断连重试 3. 服务端处理请求方式

同步阻塞方式:客户端一个请求,服务端对应一个线程去处理。同步非阻塞方式:基于IO多路复用,把多个IO的阻塞复用到同一个select的阻塞上。异步非阻塞方式:基于AIO,实现困难,理论上效率最好 4. 数据传输协议

可以基于http协议也可以自定义协议 5. 序列化与反序列化

解决客户端和服务端采用哪种数据编解码的问题可以基于文本协议如json,但是最终网络传输还是二进制形式也可以基于自定义编码协议如thrift

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号