【问题标题】:Should I flush the response in a Filter before doing post processing to improve latency?在进行后处理以改善延迟之前,我应该在过滤器中刷新响应吗?
【发布时间】:2015-08-20 18:07:19
【问题描述】:

我正在运行一个 Tomcat Web 服务器,并且有一个过滤器链配置为位于我的 servlet 前面。链中的所有过滤器都会对请求进行后处理,例如日志记录等,并且不会修改响应的内容。

我注意到的是,在所有过滤器完成对响应的处理之前,响应不会返回给客户端,这会增加响应的延迟。我通过在执行以下操作的链底部添加一个过滤器来解决此问题

response.flushBuffer()

这可确保在其他过滤器进行后处理之前将响应刷新到内核。 我的问题是这是一种标准做法,还是有更好的方法来解决这个问题?

【问题讨论】:

    标签: tomcat servlets servlet-filters


    【解决方案1】:

    有效且合乎逻辑的操作是优化代码和业务,如果它自然很重,那么您需要更多的处理能力。

    这取决于链后的过滤器做什么?

    如果它们影响响应元/标头,则刷新可能无济于事,因为标头必须先行。

    共享过滤器和 servlet codez 将有助于找到最佳解决方案。

    【讨论】:

      猜你喜欢
      • 2023-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2011-01-05
      相关资源
      最近更新 更多