0

我们正在评估 Light 4j 并考虑将其用于项目而不是 Spring Boot。在开始之前,我们有一些问题。

与一般业务处理程序一样,猜测自定义处理程序可以定义为链的一部分。a) 处理程序是否按照定义的顺序执行?b)如果处理程序不希望将请求转发给链中的下一个处理程序并将响应返回给客户端怎么办?

这些处理程序链是否类似于 servlet 过滤器?

4

1 回答 1

1

light-4j 支持每个端点的应用程序中的多个链,以便您可以定义中间件处理程序和业务处理程序的不同组合。是的。链中的处理程序将按定义的顺序执行。这是具有两条链的示例之一

https://github.com/networknt/light-config-test/blob/master/light-router/test-portal/config/handler.yml

有两种类型的处理程序:

中间件处理程序是链中间的插件,如果成功执行,则将控制权传递给下一个处理程序。但是,如果有错误,它仍然返回错误客户端以打破链。

业务处理程序是执行业务逻辑的端点处理程序。

有两种类型的中间件处理程序:

技术中间件处理程序由 light-4j 提供,它们在技术层面解决了常见的网关横切问题。

业务中间件处理程序在业务上下文中运行,以解决细粒度授权、业务审计等横切问题。我们的大多数大用户正在开发他们内部的业务中间件处理程序以扩展平台。

是的。light-4j 中间件处理程序类似于 Servlet 过滤器,但它们更有效。使用 servlet,请求和响应是不可变的并且很难操作。此外,servlet 堆栈在最少的多线程支持下增加了太多开销。Light-4j 在核心 HTTP 级别上工作,没有任何额外开销。

在本文中,我们简单地将 servlet 过滤器替换为 light-4j 中间件处理程序,性能差异显着。

https://doc.networknt.com/benchmark/spring-boot/

于 2019-09-14T14:04:50.490 回答