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】是指远程过程调用,是一种进程间通信方式,他
是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络
的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程
序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。
也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供
的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语
义和传达调用的数据。为什么要用RPC呢?就是无法在一个进程内,甚至一个计算机内
通过本地调用的方式完成的需求,比如不同的系统间的通讯,甚至不同的组织间的通
讯,由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。RPC就是要
像调用本地的函数一样去调远程函数;
1.2 RPC原理
简化理解
- 客户端(Client): 服务的调用方。
- 服务端(Server):真正的服务提供者。
- 客户端存根(Client Stub):存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。
服务端存根(Service Stub):接收客户端发送过来的消息,将消息解包,并调用本地的方法。
以上是关于SpringBoot--什么是RPC的主要内容,如果未能解决你的问题,请参考以下文章
springboot | Rabbitmq 实现RPC方式 远程同步调用