Spring计时器StopWatch在微服务链路中的使用

1、编写控制器代码测试

/**
 * @Description:
 * @author: Eric
 * @date: 2022-03-25 23:26
 * @since: 0.0.1
 */
@RestController
@RequestMapping("/api/v1")
@Slf4j
public class TestController01 {

    /**
     * 1、测试雪花算法生产全局唯一ID
     *
     * @return
     */
    @PostMapping("/testIdWorker")
    public Response testIdWorker() {
        IdWorker idWorker = new IdWorker(1, 1, 1);
        StopWatch stopWatch = new StopWatch("testIdWorker");

        /**
         * 启动一个任务:task1
         */
        stopWatch.start("task1");
        //模拟微服务调用链路1
        for (int i = 0; i < 100000; i++) {
            log.info(String.valueOf(idWorker.nextId()));
        }
        stopWatch.stop();

        /**
         * 启动一个任务:task2
         */
        stopWatch.start("task2");
        //模拟微服务调用链路2
        for (int i = 0; i < 100000; i++) {
            log.info(String.valueOf(idWorker.nextId()));
        }
        stopWatch.stop();
        log.info("整个微服务链路总耗时(纳秒)及各个链路的占比:{}", stopWatch.prettyPrint());
        log.info("整个微服务链路总耗时(纳秒):{}", stopWatch.shortSummary());
        log.info("整个微服务链路总耗时(毫秒):{}", stopWatch.getTotalTimeMillis());
        return Response.ok();
    }
}

2、客户端接口请求在这里插入图片描述
3、接口响应结果数据

2022-03-26 08:11:06.293  INFO 25272 --- [nio-8080-exec-1] c.e.c.test.api.TestController01          : 
整个微服务链路总耗时(纳秒)及各个链路的占比:
StopWatch 'testIdWorker': running time = 2840380500 ns
---------------------------------------------
ns         %     Task name
---------------------------------------------
1491228900  053%  task1
1349151600  047%  task2

2022-03-26 08:11:06.294  INFO 25272 --- [nio-8080-exec-1] c.e.c.test.api.TestController01          : 
整个微服务链路总耗时(纳秒):
StopWatch 'testIdWorker': running time = 2840380500 ns
2022-03-26 08:11:06.295  INFO 25272 --- [nio-8080-exec-1] c.e.c.test.api.TestController01          : 
整个微服务链路总耗时(毫秒):2840

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@程序员星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值