架构图

SOFARPC 从下到上分为两层:

  • 核心层:包含了我们的 RPC 的核心组件(例如我们的各种接口、API、公共包)以及一些通用的实现(例如随机等负载均衡算法)。
  • 功能实现层:所有的功能实现层的用户都是平等的,都是基于扩展机制实现的。

架构图

蚂蚁内部使用的版本也只是开源版本上增加一些内部扩展而已。

当然你也可以增加自己三方扩展,参见:扩展机制

模块划分

各个模块的实现类都只在自己模块中出现,一般不交叉依赖。需要交叉依赖的全部已经抽象到core或者common模块中。

目前模块划分如下:

模块划分

主要模块及其依赖如下:

模块名子模块名中文名说明依赖
all发布打包模块需要打包的全部模块
bom依赖管控模块依赖版本管控
example示例模块all
test测试模块包含集成测试all
coreapiAPI模块各种基本流程接口、消息、上下文、扩展接口等common
corecommon公共模块utils、数据结构exception
coreexception异常模块各种异常接口等common
bootstrap启动实现模块启动类,发布或者引用服务逻辑、以及registry的操作core
proxy代理实现模块接口实现代理生成core
client客户端实现模块发送请求、接收响应、连接维护、路由、负载均衡、同步异步等core
server服务端实现模块启动监听、接收请求,发送响应、业务线程分发等core
filter拦截器实现模块服务端和客户端的各种拦截器实现core
codec编解码实现模块例如压缩,序列化等core
protocol协议实现模块协议的包装处理、协商core
transport网络传输实现模块TCP连接的建立,数据分包粘包处理,请求响应对象分发等core
registry注册中心实现模块实现注册中心,例如zk等core