【剖析 | SOFARPC 框架】系列之 SOFARPC 泛化调用实现剖析

SOFA
Scalable Open Financial Architecture
是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。架构

本文为《剖析 | SOFARPC 框架》第七篇,做者莫那·鲁道 ,来自 E签宝。
《剖析 | SOFARPC 框架》系列由 SOFA 团队和源码爱好者们出品,
项目代号:<SOFA:RPCLab/>,官方目录目前已经所有认领完毕。框架

前言

咱们知道,在 RPC 调用中,客户端须要加载服务端提供的接口定义类,可是,不少状况下,这个并不老是可行的,因而,衍生了泛化调用的需求,一个成熟的,功能完善的 RPC 框架通常都会支持泛化调用,那么什么是泛化调用呢?SOFA RPC 又是如何支持泛化调用的?同时又是如何实现的? 和其余的 RPC 泛化调用又有何不一样?有何优点?咱们将在本文一一解答这些问题。分布式

泛化调用介绍

当客户端由于某种缘由没法获得服务提供方的接口 jar 包时,或者是客户端是一个比较通用的系统,并不想依赖每一个服务提供方提供的 facade接口,可是又须要进行调用,那么此时就须要进行泛化调用。spa

例如:中间件

  1. 当分布式系统由多个语言开发,假设是 Node Js ,同时 Node Js 须要调用 Java 语言的 RPC 服务,那么,咱们就须要在二者之间架设适配层,让适配层处理 Node Js 的请求后再转发给 Java 的 RPC 服务。
  2. 一些中间系统的功能,好比某些内部网关,须要以一个统一的方式实现对其余下游系统的调用(非 SPI的状况),逐个依赖下游的包显然是不可能的。
  3. 一些流量回放类的线上系统,能够将数据采集拦截,以后,经过泛化调用回放,而不须要依赖全站的应用。
相关文章
相关标签/搜索