当前位置: 首页 > news >正文

【后端】RPC

不定期更新。


  • 定义
    RPC 是 Remote Procedure Call 的缩写,中文通常翻译为远程过程调用。
  • 作用
  1. 简化分布式系统开发。
  2. 实现微服务架构,便于模块化、复用。
  3. 提高系统性能和可伸缩性。提供高性能通信、负载均衡、容错重试机制。

在现代分布式系统、微服务架构中,服务之间需要频繁通信。如果服务间的通信效率低下,会严重影响整个系统性能和响应时间。

  1. 跨语言/跨平台通信,语言无关性。
  2. 对分布式服务进行统一管理和运维。
  • 核心思想
    RPC 是一种进程间通信(IPC Inter-Process Communication)技术,允许一个计算机程序在不了解底层网络技术的情况下,调用另一个地址空间(通常是另一台计算机上的程序)中的子程序或函数。
    一句话总结:调用远程计算机上的函数或方法,就像调用本地函数一样简单。
  • 原理
    客户端(Client) 调用本地的某个函数(这个函数在内部会做一些特殊处理)。
    这个本地函数会把参数进行编码(Marshalling/Serialization),把数据转换成可以通过网络传输的格式(例如 JSON, XML, Protobuf 等)。
    编码后的请求通过网络传输到服务端(Server)。
    服务端接收到请求后,对数据进行解码(Unmarshalling/Deserialization),还原成原始参数。
    服务端根据请求找到对应的远程函数,并执行它。
    远程函数执行完毕后,将结果进行编码。
    编码后的结果通过网络传输回客户端。
    客户端接收到结果后,进行解码,并将结果返回给最初调用的本地函数。
  • 常用高性能RPC框架
    gRPC (Google 开发,基于 HTTP/2 和 Protobuf)
    Dubbo (阿里巴巴开源,Java 生态常用)
    Thrift (Apache 开源,支持多种语言)
    ServiceMesh 技术 (如 Istio、Envoy,在基础设施层面提供了 RPC 增强能力)
http://www.lqws.cn/news/114355.html

相关文章:

  • Android 项目的核心配置文件
  • 在VSCode中开发一个uni-app项目
  • Linux RPC 和 NFS 教程
  • 湖北理元理律师事务所:债务化解中的心理重建与法律护航
  • 【Java算法】八大排序
  • Lifecycle 核心原理面试回答
  • 得物GO面试题及参考答案
  • NLP学习路线图(二十四):门控循环单元(GRU)
  • QT聊天项目DAY13
  • Tauri(2.5.1)+Leptos(0.7.8)开发桌面应用--简单的工作进度管理
  • 英福康INFICON VGC501, VGC502, VGC503 单通道、双通道和三通道测量装置
  • 【Harmony OS】数据存储
  • pytorch基本运算-导数和f-string
  • 【分布式技术】KeepAlived高可用架构科普
  • Vert.x学习笔记-EventLoop与Handler的关系
  • 电脑安装系统蓝屏的原因
  • 1. 引言
  • CSS(2)
  • AI 大模型+数字营销
  • LangChain操作指南
  • 欢乐熊大话蓝牙知识14:用 STM32 或 EFR32 实现 BLE 通信模块:从0到蓝牙,你也能搞!
  • Redisson学习专栏(五):源码阅读及Redisson的Netty通信层设计
  • Python函数参数详解:从位置参数到灵活调用的艺术
  • React 基础语法
  • AI数据集构建:从爬虫到标注的全流程指南
  • HashMap 的底层原理
  • windows安装和部署docker
  • String 学习总结
  • LangChain基本概念
  • Spring @Value注解的依赖注入实现原理