全部产品
云市场

概述

更新时间:2020-02-18 09:24:43

SOFARPC 提供应用之间的点对点服务调用功能,具有高可伸缩、高容错的特性。

为保证高可用性,通常同一个应用或同一个服务提供方都会部署多份,以达到对等服务的目标。SOFARPC 提供软件负载的能力,它是对等服务调用的调度器,会帮助服务消费方在这些对等的服务提供方中合理地选择一个来执行相关的业务逻辑。

为保证应用的高容错性,需要服务消费方能够感知服务提供方的异常,并做出相应的处理,以减少应用出错后导致的服务调用抖动。在 SOFARPC 中,一切服务调用的容错机制均由软负载和配置中心控制,这样可以在应用系统无感知的情况下,帮助服务消费方正确选择健康的服务提供方,保障全站的稳定性。

实现原理

SOFARPC 中的远程调用是通过服务模型来定义服务调用双方的。服务分为服务消费方和服务提供方,对应 RPC 的调用端和被调用端,可以理解为调用客户端和调用服务端。对于 RPC 服务,服务提供方称之为 “服务 (service)”,而服务消费方称之为 “引用 (reference)”。

服务发布、引用以及调用的简单流程图如下:

SOFA RPC

  1. 当一个 SOFARPC 的应用启动时,如果发现当前应用需要发布 RPC 服务,那么 SOFARPC 会将该服务注册到配置中心,就是图中蓝色实线所示的过程。
  2. 当引用这个服务的 SOFA 应用启动时,会从配置中心订阅对应服务的地址,当配置中心收到订阅请求后,会将发布方的地址列表推送给订阅方,就是图中绿色实线所示的过程。
  3. 当引用服务的一方拿到地址以后,就可以调用服务了,就是图中蓝色虚线所示的过程。