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