Architecture
设计原则
- 高兼容性
- 极致性能
- 全链路异步
- 易用
- 可扩展
功能架构
分层架构设计

架构图中ESA HttpServer, Restlight Server, Restlight Core, Restlight for Spring, Restlight Starter几个模块均可作为一个独立的模块使用, 满足不同场景下的需求。
ESA HttpServer
基于Netty 实现的一个简易的HttpServer, 支持Http1.1/Http2以及Https等
Restlight Server
在ESA HttpServer基础之上封装了
- 引入业务线程池
Filter- 请求路由(根据url, method, header等条件将请求路由到对应的Handler)
- 基于
CompletableFuture的响应式编程支持 - 线程调度
- …
对应启动入口类esa.restlight.server.Restlite
Tip
适合各类框架,中间件等基础组建中启动或期望使用代码显示启动HttpServer的场景Restlight Core
在Restlight Server之上, 扩展支持了Controller方式(在Controller类中通过诸如@RequestMappng等注解的方式构造请求处理逻辑)完成业务逻辑以及诸多常用功能
HandlerInterceptor: 拦截器ExceptionHandler: 全局异常处理器BeanValidation: 参数校验ArgumentResolver: 参数解析扩展ReturnValueResolver: 返回值解析扩展RequestSerializer: 请求序列化器(通常负责反序列化Body内容)ResposneSerializer: 响应序列化器(通常负责序列化响应对象到Body)- 内置
Jackson,Fastjson,Gson,ProtoBuf序列化支持 - …
对应启动入口类esa.restlight.core.Restlight
Tip
适合各类框架,中间件等基础组建中启动或期望使用代码显示启动HttpServer的场景Restlight SpringMVC & Restlight JAX-RS
-
Restlight SpringMVC对SpringMVC中的注解使用习惯的Restlight Core的扩展实现(@RequestMapping,@RequestParam等)。 -
Restlight JAX-RS对JAX-RS中的注解使用习惯的Restlight Core的扩展实现(@Path,@GET,@QueryParam等)。
Restlight for Spring
在Restlight Core基础上支持在Spring场景下通过ApplicationContext容器自动配置各种内容(RestlightOptions, 从容器中自动配置Filter, Controller, ControllerAdvice等)
Tip
适合Spring Boot场景
Restlight Starter
在Restlight for Spring基础上支持在Spring Boot场景的自动配置
Tip
适合Spring Boot场景
Restlight Actuator
在Restlight Starter基础上支持在Spring Boot Actuator原生各种Endpoints支持以及Restlight独有的Endpoints。
Tip
适合Spring Boot Actuator场景
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.