RPC 远程过程调用
RPC 远程过程调用
程序员朱永胜有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。https://store.amazingmemo.com/chapterDetail/1685324709017001`
RPC(远程过程调用)
RPC(Remote Procedure Call)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,以便为通信程序之间携带信息数据。通过使用 RPC,开发人员可以像调用本地服务一样调用远程服务。
RPC 工作原理
RPC 工作时,会有一个客户端和一个服务端。客户端程序会在本地执行一个过程调用,这个调用会被封装成一个网络消息,然后发送到服务端。服务端程序接收到这个消息,解包,并执行所请求的服务,然后将结果返回给客户端。
以下是 RPC 的基本步骤:
- 客户端调用 :客户端调用一个封装了网络消息的本地过程。
- 请求发送 :客户端的 RPC 库将过程调用转换成网络消息,并发送到服务端。
- 服务端接收 :服务端的 RPC 库接收消息,并将其解包以获取过程调用的细节。
- 服务执行 :服务端执行请求的过程。
- 响应返回 :服务端的 RPC 库将执行结果封装成网络消息,并发送回客户端。
- 客户端接收 :客户端的 RPC 库接收到消息,解包,并将结果返回给客户端程序。
RPC 的优点
- 简化编程 :开发人员可以像调用本地过程一样调用远程过程,无需关心网络通信的细节。
- 位置透明 :客户端程序员不需要知道服务的物理位置。
- 语言无关性 :客户端和服务端程序可以用不同的编程语言编写。
RPC 的缺点
- 网络依赖 :RPC 需要网络连接,任何网络问题都可能导致 RPC 调用失败。
- 性能问题 :由于网络延迟和数据序列化 / 反序列化的开销,RPC 调用可能比本地调用慢。
- 安全性 :RPC 调用需要考虑数据加密和安全认证机制,以防止数据泄露或未授权访问。
RPC 与 REST
RPC 和 REST 都是远程服务调用的方式,但它们在设计和使用上有所不同。REST 通常使用 HTTP 作为传输协议,并遵循无状态、可缓存的通信原则,而 RPC 不一定非要基于 HTTP,也不一定遵循 REST 原则。
总结
RPC 是一种强大的技术,它允许程序员在不同的网络环境中轻松地进行服务调用。尽管它有一些缺点,但其简化远程服务调用的能力使其在分布式系统开发中非常有用。