首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算Spring WebFlux中每个请求的总执行时间和在响应头(即x运行时)中的设置?

如何计算Spring WebFlux中每个请求的总执行时间和在响应头(即x运行时)中的设置?
EN

Stack Overflow用户
提问于 2018-01-26 09:54:22
回答 1查看 1.7K关注 0票数 2

我不知道我的方法对不对?此外,请让我知道,如果有任何其他工作,以实现这一点。

可以使用WebFilter吗?

代码语言:javascript
运行
复制
package request.middlewares;

import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Mono;

@Component
public class ResponseTimeCalculator implements WebFilter {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        // is it possible here?
        exchange.getResponse().getHeaders().add("X-Runtime", "10ms");
        return chain.filter(exchange);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 09:05:20

如果使用Spring,则应该使用spring-boot-starter-actuator

如果您没有使用Spring,您仍然应该看看千分尺,哪种仪器使用Spring来收集此类数据。

请注意,您的方法存在许多缺陷:

  • 处理程序链可能会返回,但实际的响应处理/写入可能尚未完成。
  • 使用简单的计时器不会考虑GC暂停
  • 看测量样本并不是很重要,百分位数会给你更多。

在任何情况下,您都可以查看Spring的MetricsWebFilter (这里)来检查如何用千分尺实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48459024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档