编程导航学习网站:学编程、做项目、拿 Offer!
企业高频面试题库:开始刷题,面试遇原题!
精选简历模板大全:1 分钟搞定简历!
AI 资源导航网站:获取最新 AI 黑科技!
1 对 1 模拟面试:随时随地提升面试能力
RPC 求职高频面试题:开始刷题
⭐️ 建议通过鱼皮的视频,2 分钟了解 RPC:https://www.bilibili.com/video/BV1y2aPzJEZY/
RPC(Remote Procedure Call,远程过程调用)是分布式系统中最核心的通信技术之一。简单来说,RPC 让你可以像调用本地方法一样调用远程服务器上的方法,就好比你在家里打了个电话,电话那头的人帮你完成了一件事,然后把结果告诉你。这种 “隔空喊话” 的能力,正是微服务架构和分布式系统的基石。
随着微服务架构的普及,系统被拆分成了许多小服务,这些服务之间需要频繁通信。RPC 框架正是为了解决这个问题而生的。它隐藏了网络通信的复杂性,让开发者能够专注于业务逻辑,而不用操心底层的序列化、网络传输、负载均衡等问题。
▼mermaid复制代码graph LR A[客户端<br/>调用方法] -->|1.发起调用| B[RPC 框架] B -->|2.网络传输| C[RPC 框架] C -->|3.执行方法| D[服务端<br/>处理业务] D -->|4.返回结果| C C -->|5.网络传输| B B -->|6.返回结果| A style A fill:#e1f5ff style D fill:#fff4e1 style B fill:#f0f0f0 style C fill:#f0f0f0
为什么要学 RPC?
如果你想从事后端开发、微服务架构设计或者大厂工作,RPC 是绕不开的技术。主流的 RPC 框架如 gRPC、Dubbo、Thrift 在各大公司广泛应用,掌握 RPC 不仅能让你理解微服务架构的精髓,还能大幅提升你的系统设计能力。更重要的是,RPC 的设计思想(如序列化、网络通信、服务治理)是通用的,学会 RPC 能让你更深刻地理解分布式系统。
RPC 能解决什么问题?
核心就是 4 个字 —— 服务调用。在分布式系统中,不同的服务可能部署在不同的机器上,甚至使用不同的编程语言。RPC 框架让这些服务能够无缝通信,实现系统解耦、提高复用性、支持跨语言调用。无论是电商系统的订单服务调用库存服务,还是社交平台的消息服务调用用户服务,背后都是 RPC 在支撑。
在 AI 时代,RPC 也在发挥着重要作用。AI 模型推理服务、向量数据库查询、分布式训练任务调度等,都可以利用 RPC 高效通信。学习 RPC,将为你的技术栈增加重要的一环,让你能够构建更加强大和灵活的分布式系统。

RPC 是后端开发、架构师等岗位的核心技能,掌握 RPC 后对下列岗位很有帮助:
1)先理解为什么需要 RPC?
很多同学一上来就学框架,但不理解为什么要用 RPC。建议先思考分布式系统中服务调用的痛点,理解 RPC 解决了什么问题。
2)从实践到原理:建议先快速上手一个 RPC 框架(推荐 gRPC 或 Dubbo),体验 RPC 的使用流程,然后再深入学习底层原理。
3)手写 RPC 框架是最好的学习方式!
理论学习只能让你知道 RPC 是什么,只有动手实现一个简单的 RPC 框架,才能真正理解 RPC 的工作原理和设计思想。强烈推荐 鱼皮的手写 RPC 框架教程。非常详细,从简易版到扩展版,循序渐进,适合零基础学习。教程使用了 Vert.x、Etcd、Kryo 等新颖的技术,做完这个项目能学到很多东西。

如图,整整 12 节详细的保姆级教程:

4)对比学习不同的 RPC 框架:gRPC、Dubbo、Thrift 各有特点,建议至少深入学习一个,了解其他几个的特点和适用场景,这样在技术选型时才能做出正确的判断。
5)善用 AI 工具:学习 RPC 时可以用 AI 工具(如 ChatGPT、Cursor)辅助理解概念、生成代码、调试问题。可以使用 AI 资源大全 来获取到很多实用的 AI 工具。

理解分布式系统的基本概念,为学习 RPC 打下基础。
分布式系统基本概念【必学】:
服务化架构【必学】:
关于微服务架构的详细学习,可以查看 Spring Cloud 微服务学习路线
为什么需要 RPC【必学】:
1)这个阶段 不需要深入学习分布式系统的所有知识,重点理解为什么需要 RPC,以及 RPC 在分布式系统中的作用。
2)如果你已经有微服务开发经验,可以快速过这个阶段。如果没有,建议花 2-3 天时间理解分布式系统的基本概念。
3)很多同学会直接跳过这个阶段,但这会导致后续学习时不理解为什么要这样设计。建议至少花一天时间思考:为什么要用 RPC 而不是 HTTP?RPC 解决了什么问题?
理解 RPC 的核心原理和组成部分,掌握 RPC 的基本工作流程。
RPC 核心原理【必学】:
序列化和反序列化【必学】:
网络通信【必学】:
动态代理【必学】:
服务注册和发现【必学】:
1)RPC 的核心原理并不复杂,关键是理解序列化、网络通信、动态代理这几个核心概念。建议先看视频理解概念,再动手写代码验证。

2)序列化是 RPC 的核心,要理解不同序列化方式的优缺点。Protobuf 是目前最流行的序列化方式,建议重点学习。
3)动态代理是 RPC 客户端的核心技术,它让我们可以像调用本地方法一样调用远程方法。建议动手写一个简单的动态代理示例,理解其工作原理。
4)服务注册和发现是 RPC 框架的重要组成部分,但在学习阶段可以简化,先理解概念即可。
主流 RPC 框架如 Dubbo、gRPC 等,提供了完善的远程调用解决方案,是分布式系统开发的核心工具。
掌握至少一个主流 RPC 框架的使用,理解不同框架的特点和适用场景。
gRPC【必学】:
Dubbo【建议学】:
Apache Thrift【可不学】:
gRPC:
Dubbo:
Thrift:
1)建议选择 gRPC 或 Dubbo 中的一个深入学习,两者都学习更好。如果时间有限,优先学习 gRPC,因为它的应用更广泛。
2)学习 RPC 框架最好的方式是动手写代码。建议搭建一个简单的微服务项目,使用 RPC 框架实现服务间的调用。
3)gRPC 的四种调用方式要都体验一遍,理解流式 RPC 的应用场景。很多同学只学习简单 RPC,但流式 RPC 在某些场景下非常有用(如文件传输、实时数据流)。
4)Dubbo 的服务治理功能非常强大,如果你使用 Dubbo,建议深入学习负载均衡、服务降级、限流等功能。
gRPC:
Dubbo:
从零开始手写一个简单的 RPC 框架,深入理解 RPC 的设计思想和实现细节,包括序列化、网络通信、服务注册等核心功能。
RPC 框架核心功能【必学】:
扩展功能【建议学】:
1)手写 RPC 框架是学习 RPC 最好的方式,强烈建议跟着 鱼皮的手写 RPC 框架教程 动手实现一遍。
鱼皮的手写 RPC 框架教程 非常详细,从简易版到扩展版,循序渐进,适合零基础学习。教程使用了 Vert.x、Etcd、Kryo 等新颖的技术,做完这个项目能学到很多东西。

如图,整整 12 节详细的保姆级教程:

即使你不打算深入研究 RPC 框架,手写一遍也能让你对 RPC 的原理有深刻的理解。
2)手写 RPC 框架的过程中,你会遇到很多细节问题(如粘包半包、序列化异常等),不要气馁,这些都是正常的。遇到问题时可以用 AI 工具辅助调试。
3)完成基础功能后,建议尝试实现一些扩展功能,如负载均衡、容错机制等。这些功能能让你的 RPC 框架更接近生产级别,也能让你的简历更有亮点。

掌握 RPC 框架的高级特性和生产实践,能够解决实际项目中的问题。
负载均衡【必学】:
容错机制【必学】:
服务治理【建议学】:
性能优化【建议学】:
安全性【建议学】:
1)负载均衡和容错机制是 RPC 框架的核心功能,也是面试的重点。要理解不同策略的适用场景,以及如何根据业务需求选择合适的策略。
2)一致性哈希是一个重要的负载均衡算法,在分布式缓存、分布式存储中广泛应用。建议深入理解其原理和实现。
3)服务治理功能在大规模微服务架构中非常重要。如果你使用 Dubbo,建议深入学习 Dubbo 的服务治理功能。如果使用 gRPC,可以结合 Istio 等服务网格来实现服务治理。
4)性能优化是一个持续的过程,要根据实际的性能瓶颈进行优化。常见的优化手段包括连接池复用、异步调用、压缩传输等。
将 RPC 框架应用到实际项目中,准备面试和求职。
生产环境部署【建议学】:
微服务架构实践【建议学】:
简历和面试准备【必学】:
1)如果有实际项目,建议尝试将 RPC 框架应用到项目中。如果没有,可以自己搭建一个简单的微服务项目进行实践。
2)手写 RPC 框架项目是一个很好的简历亮点。建议将项目完善后放到 GitHub,并在简历中详细描述项目的功能和技术难点。鱼皮的手写 RPC 框架教程提供了 20 多个简历亮点,可以直接使用。
3)RPC 相关的面试题要好好准备,特别是负载均衡、容错机制、序列化等核心知识点。建议刷一遍面试鸭的 RPC 面试题。
4)面试时要能够清晰地描述 RPC 的工作原理、你做的 RPC 项目的技术难点、以及你是如何解决问题的。建议提前准备好项目介绍的话术。
基础理论:
技术实现:
高级特性:
系统设计:


RPC 是分布式系统的核心技术,掌握 RPC 不仅能让你理解微服务架构的精髓,还能大幅提升你的系统设计能力。
学习 RPC 建议先理解原理,再动手实践。强烈推荐跟着鱼皮的手写 RPC 框架教程从 0 到 1 实现一个 RPC 框架,这是最好的学习方式。同时,建议至少深入学习一个主流 RPC 框架(gRPC 或 Dubbo),并在实际项目中应用。
希望这份学习路线能够帮助大家系统地掌握 RPC 技术,为后续学习微服务架构和分布式系统打下坚实的基础。
加油小伙伴们 💪🏻!

1)程序员学习交流圈:极客教程、实战项目、求职宝典
2)程序员面试八股文:实习/校招/社招高频考点、企业真题解析
3)程序员写简历神器:专业模板、丰富例句、直通面试
4)AI 知识资源大全:前沿技术、最新 AI 资讯、提示词大全
5)1 对 1 模拟面试:实习/校招/社招面试拿 Offer 必备