SpringBoot--什么是RPC

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot--什么是RPC相关的知识,希望对你有一定的参考价值。

01: 分布式系统理论
02: 什么是RPC
03: Dubbo及Zookeeper介绍 & 安装zookeeper
04: 安装dubbo-admin
05: 服务注册发现实战# 1. SpringBoot--什么是RPC
RPC两个核心模块:通讯,序列化。


1.1 什么是RPC

RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他
是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络
的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程
序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

也就是说两台服务器AB,一个应用部署在A服务器上,想要调用B服务器上应用提供
的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语
义和传达调用的数据。为什么要用RPC呢?就是无法在一个进程内,甚至一个计算机内
通过本地调用的方式完成的需求,比如不同的系统间的通讯,甚至不同的组织间的通
讯,由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。RPC就是要
像调用本地的函数一样去调远程函数;

1.2 RPC原理

在这里插入图片描述
简化理解
在这里插入图片描述

  • 客户端(Client): 服务的调用方。
  • 服务端(Server):真正的服务提供者。
  • 客户端存根(Client Stub):存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。
    服务端存根(Service Stub):接收客户端发送过来的消息,将消息解包,并调用本地的方法。


以上是关于SpringBoot--什么是RPC的主要内容,如果未能解决你的问题,请参考以下文章

Feign实现RPC调用

SpringBoot整合RPC框架---Thrift

springboot | Rabbitmq 实现RPC方式 远程同步调用

springboot | Rabbitmq 实现RPC方式 远程同步调用

springboot 使用 GRPC

dubbo远程调用(rpc)-->快速入门+管理控制台+整合Springboot开发