【问题标题】:Execution of handlers in Light 4j在 Light 4j 中执行处理程序
【发布时间】:2019-09-13 16:14:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: light-4j


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      相关资源
      最近更新 更多