RPC 模块
1. 概述
基于Feign的微服务之间HTTP接口的调用,只能满足简单的A微服务实例根据简单的规则随机选择B微服务之中的某个服务实例,而这个B微服务实例如果想异步回传信息给调用方,是根本无法实现的。 同时,由于Feign只支持简单的服务选取规则,无法做到将请求转发给指定的微服务实例,无法做到将一个请求广播给接收方微服务的所有实例。
2. 架构说明
2.1 架构设计图
2.2 模块说明
主要模块的功能介绍如下:
- Eureka:服务注册中心,用户管理服务,服务发现。
- Sender发送器:服务请求接口,发送端使用Sender向接收端请求服务。
- Receiver接收器:服务请求接收相应接口,接收端通过该接口响应服务。
- Interceptor拦截器:Sender发送器会将使用者的请求传递给拦截器。拦截器拦截请求,对请求做额外的功能性处理,分别是广播拦截器用于对请求广播操作、重试拦截器用于对失败请求重试处理、缓存拦截器用于简单不变的请求读取缓存处理、和提供默认实现的默认拦截器。
- Decoder,Encoder:用于请求的编码和解码。
- Feign:是一个http请求调用的轻量级框架,声明式WebService客户端程序,用于Linkis-RPC底层通信。
- Listener:监听模块,主要用于监听广播请求。