📜  RPC 消息协议(1)

📅  最后修改于: 2023-12-03 14:47:07.547000             🧑  作者: Mango

RPC消息协议

什么是RPC消息协议?

RPC(Remote Procedure Call)即远程过程调用,是一种进程间通信(IPC)方式。通过RPC消息协议,一个程序可以请求在另一个机器上的服务,就像请求本地服务一样。

RPC消息协议的特点:
  • 提供像本地调用一样的调用方式,让客户端不需要关注服务的具体位置以及通信细节。

  • 客户端无需知道服务的实现细节,只需要知道服务的作用和使用方式。

  • RPC消息协议具有可扩展性,可以不断增加新的服务实现。

RPC消息协议的工作原理:
  1. 客户端调用本地stub

  2. stub打包调用信息并发送给服务端

  3. 服务端收到信息后进行解包,并调用本地服务

  4. 本地服务执行后返回结果给服务端

  5. 服务端将结果打包并发送给客户端

  6. 客户端收到结果后进行解包

  7. 客户端按需使用结果

RPC消息协议的优点:
  • 简化网络通信过程,提高调用效率

  • 封装底层通信细节,实现网络透明

  • 实现服务接口与实现的分离

  • 可以方便地进行服务远程化、集中控制和管理,提供系统的整体性能

RPC消息协议的缺点:
  • 复杂度较高,需要进行细节把控

  • 远程调用的性能相对本地调用会有所下降

常见的RPC消息协议
  • gRPC: Google开源的高性能、跨语言的RPC框架。使用protobuf作为序列化和反序列化工具。

  • Dubbo: 阿里巴巴开源的高性能、轻量级的RPC框架。支持功能集成、灰度发布、负载均衡和容错机制等。

参考资料

代码片段:

# RPC消息协议

## 什么是RPC消息协议?

RPC(Remote Procedure Call)即远程过程调用,是一种进程间通信(IPC)方式。通过RPC消息协议,一个程序可以请求在另一个机器上的服务,就像请求本地服务一样。

## RPC消息协议的特点:

- 提供像本地调用一样的调用方式,让客户端不需要关注服务的具体位置以及通信细节。

- 客户端无需知道服务的实现细节,只需要知道服务的作用和使用方式。

- RPC消息协议具有可扩展性,可以不断增加新的服务实现。

## RPC消息协议的工作原理:

1. 客户端调用本地stub

2. stub打包调用信息并发送给服务端

3. 服务端收到信息后进行解包,并调用本地服务

4. 本地服务执行后返回结果给服务端

5. 服务端将结果打包并发送给客户端

6. 客户端收到结果后进行解包

7. 客户端按需使用结果

## RPC消息协议的优点:

- 简化网络通信过程,提高调用效率

- 封装底层通信细节,实现网络透明

- 实现服务接口与实现的分离

- 可以方便地进行服务远程化、集中控制和管理,提供系统的整体性能

## RPC消息协议的缺点:

- 复杂度较高,需要进行细节把控

- 远程调用的性能相对本地调用会有所下降

## 常见的RPC消息协议

- gRPC: Google开源的高性能、跨语言的RPC框架。使用protobuf作为序列化和反序列化工具。

- Dubbo: 阿里巴巴开源的高性能、轻量级的RPC框架。支持功能集成、灰度发布、负载均衡和容错机制等。

## 参考资料

- [RPC (远程过程调用)](https://www.runoob.com/rpc/rpc-calls.html)

- [Java实现RPC消息协议](https://www.jianshu.com/p/8a5bc391c26e)