RPC 模块

1. 概述

基于Feign的微服务之间HTTP接口的调用,只能满足简单的A微服务实例根据简单的规则随机选择B微服务之中的某个服务实例,而这个B微服务实例如果想异步回传信息给调用方,是根本无法实现的。 同时,由于Feign只支持简单的服务选取规则,无法做到将请求转发给指定的微服务实例,无法做到将一个请求广播给接收方微服务的所有实例。

2. 架构说明

2.1. 架构设计图

Linkis RPC架构图

2.2. 模块说明

主要模块的功能介绍如下:

  • Eureka:服务注册中心,用户管理服务,服务发现。
  • Sender发送器:服务请求接口,发送端使用Sender向接收端请求服务。
  • Receiver接收器:服务请求接收相应接口,接收端通过该接口响应服务。
  • Interceptor拦截器:Sender发送器会将使用者的请求传递给拦截器。拦截器拦截请求,对请求做额外的功能性处理,分别是广播拦截器用于对请求广播操作、重试拦截器用于对失败请求重试处理、缓存拦截器用于简单不变的请求读取缓存处理、和提供默认实现的默认拦截器。
  • Decoder,Encoder:用于请求的编码和解码。
  • Feign:是一个http请求调用的轻量级框架,声明式WebService客户端程序,用于Linkis-RPC底层通信。
  • Listener:监听模块,主要用于监听广播请求。