跳至主要內容

RPC核心

holic-x...大约 3 分钟架构RPC

RPC核心

学习核心

学习资料

Start With Why

RPC 的应用场景:RPC是解决分布式系统通信问题的一大利器,它可以像调用本地一样发起远程调用

​ 对于RPC,可能第一反应就是“微服务”。RPC最大的特点就是可以像调用本地一样发起远程调用,这一特点常常会让人感觉RPC就是为“微服务”或SOA而生的。现在的大多数应用系统发展到一定规模之后,都会向“微服务化”演进,演进后的大型应用系统也的确是由一个个“微服务”组成的。

而RPC并不局限于微服务调用场景中,一些网络通信中也会用到RPC

​ (1)大型分布式应用系统可能会依赖消息队列、分布式缓存、分布式数据库以及统一配置中心等,应用程序与依赖的这些中间件之间都可以通过RPC进行通信。比如 etcd,它作为一个统一的配置服务,客户端就是通过gRPC框架与服务端进行通信的

​ (2)一些容器编排引擎 Kubernetes,它本身就是分布式的,Kubernetes的 kube-apiserver 与整个分布式集群中的每个组件间的通讯,都是通过gRPC框架进行的

​ 分布式系统中的网络通信一般都会采用四层的TCP协议或七层的HTTP协议,一般来说前者占大多数,这主要得益于TCP协议的稳定性和高效性。网络通信说起来简单,但实际上是一个非常复杂的过程,这个过程主要包括:对端节点的查找、网络连接的建立、传输数据的编码解码以及网络连接的管理等等,每一项都很复杂。

​ 在搭建一个复杂的分布式系统过程中,如果开发人员在编码时要对每个涉及到网络通信的逻辑都进行一系列的复杂编码,将是一件非常恐怖的事情,而RPC对网络通信的整个过程做了完整包装,在搭建分布式系统时,它会使网络通信逻辑的开发变得更加简单,同时也会让网络通信变得更加安全可靠

如何学习RPC?

​ 基于RPC的特点和应用场景,一步步深入学习:

​ 例如【RPC可以像调用本地一样发起远程调用、用RPC解决网络通信问题】,因此需要去学习序列化、编码解码、网络传输这些基础的内容,而RPC真正强大的地方是它的治理功能,比如连接管理、健康检测、负载均衡、优雅启停机、异常重试、业务分组以及熔断限流等,都需要结合实际应用场景理解分析

​ 因此对于RPC的学习可以从这几方面切入:

  • 核心基础:了解RPC的基本原理、关键的网络通信
    • 核心原理
    • 协议
    • 序列化
    • 网络通信
    • 动态代理
    • RPC实战
  • 重点难点:掌握RPC框架的治理功能、集群管理功能
    • 架构设计
    • 服务发现
    • 健康监测
    • 路由策略
    • 负载均衡
    • 异常重试
    • 优雅关闭和启动
    • 熔断限流
    • 业务分组
  • 实践应用:掌握如果在分布式环境下如何定位问题,RPC性能提升等
    • 异步RPC
    • 安全体系
    • 分布式环境下的问题定位
    • 时间轮在RPC中的应用
    • 流量回访
    • 动态分组
    • RPC调用
    • 环境兼容问题
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3