架构模块介绍

本文介绍 SOFARPC 的架构模块。

工程架构

SOFARPC 架构如下所示:脚手架截图 SOFARPC 从下到上分为两层:

  • 核心层:包含了 RPC 的核心组件(例如各种接口、API、公共包)以及一些通用的实现(例如随机等负载均衡算法)。

  • 功能实现层:所有的功能实现层的用户都是平等的,都是基于扩展机制实现的。

模块划分

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

模块划分如下:

模块划分

模块名

子模块名

中文名

说明

依赖

all

-

发布打包模块

需要打包的全部模块。

all

bom

-

依赖管控模块

依赖版本管控。

example

-

示例模块

-

all

test

-

测试模块

包含集成测试

all

core

api

API模块

各种基本流程接口、消息、上下文、扩展接口等。

common

core

common

公共模块

utils、数据结构。

exception

core

exception

异常模块

各种异常接口等。

common

bootstrap

-

启动实现模块

启动类,发布或者引用服务逻辑以及 registry 的操作。

core

proxy

-

代理实现模块

接口实现代理生成。

core

client

-

客户端实现模块

发送请求、接收响应、连接维护、路由、负载均衡、同步异步等。

core

server

-

服务端实现模块

启动监听、接收请求,发送响应、业务线程分发等。

core

filter

-

拦截器实现模块

服务端和客户端的各种拦截器实现。

core

codec

-

编解码实现模块

例如压缩,序列化等。

core

protocol

-

协议实现模块

协议的包装处理、协商。

core

transport

-

网络传输实现模块

TCP 连接的建立、数据分包粘包处理、请求响应对象分发等。

core

registry

-

注册中心实现模块

实现注册中心,例如 zk。

core