MST

星途 面试题库

面试题:微服务架构下RPC远程过程调用的原理及常用框架

请阐述在微服务架构中,RPC远程过程调用的基本原理。并列举至少两个目前常用的RPC框架,简要说明它们各自的特点。
45.3万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

RPC远程过程调用基本原理

  1. 通信原理:RPC使得程序可以像调用本地函数一样调用不同地址空间(通常是不同服务器)上的函数。其底层通过网络协议(如TCP/IP)来传输数据。客户端发送包含函数名、参数等信息的请求到服务端,服务端接收到请求后解析,调用相应的函数并返回结果。
  2. 代理机制:客户端通过代理对象(Stub)来发起调用,代理对象封装了网络通信细节。服务端则有对应的骨架对象(Skeleton)来接收请求并调用实际的服务实现。
  3. 序列化与反序列化:为了在网络上传输数据,需要将参数和返回值进行序列化(编码成字节流),在接收端再进行反序列化(还原成对象)。常见的序列化协议有JSON、XML、ProtoBuf等。

常用RPC框架及特点

  1. Dubbo
    • 高性能:采用了多种优化策略,如异步I/O、连接复用等,在高并发场景下性能表现优秀。
    • 丰富的功能:支持服务治理,包括服务注册与发现、负载均衡、容错机制等。
    • 扩展性强:提供了丰富的SPI扩展点,可以方便地进行功能扩展。
  2. gRPC
    • 基于HTTP/2:利用HTTP/2的多路复用、头部压缩等特性,提高了传输效率。
    • 强类型:使用ProtoBuf作为序列化协议,具有高效、强类型的特点,适合对性能和数据结构严格要求的场景。
    • 跨语言支持:支持多种编程语言,方便不同语言开发的微服务之间进行通信。