> 文档中心 > Spring计时器StopWatch在微服务链路中的使用

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

1、编写控制器代码测试

/** * @Description: * @author: Eric * @date: 2022-03-25 23:26 * @since: 0.0.1 */@RestController@RequestMapping("/api/v1")@Slf4jpublic 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%  task11349151600  047%  task22022-03-26 08:11:06.294  INFO 25272 --- [nio-8080-exec-1] c.e.c.test.api.TestController01   : 整个微服务链路总耗时(纳秒):StopWatch 'testIdWorker': running time = 2840380500 ns2022-03-26 08:11:06.295  INFO 25272 --- [nio-8080-exec-1] c.e.c.test.api.TestController01   : 整个微服务链路总耗时(毫秒):2840