前面我们搭建了一个抢年货的微服务环境,并且实现了下单和支付的功能,本篇我们来测试下整体环境的性能如何。看看有哪些地方时可以优化的点,最终我们再次验证优化后,性能是否有所提升呢?
一、环境简介
以下所有服务都是单机部署的。
本文直接采用本地环境测试了,我的电脑配置如下:需要启动的基础服务如下:部署的服务:
二、编写测试方法
在rob-ncssitis-tst服务当中,编写测试方法,使用多线程方式调用下单和支付的接口,代码如下:
GtMapping("/concurrnt/ordr")
publicLongconcurrntOrdr(){
//使用cyclicBarrir模拟线程同时到达
CyclicBarrircyclicBarrir=nwCyclicBarrir();
for(inti=0;i;i++){
nwThrad(()-{
try{
cyclicBarrir.await();
log.info("开始时间:{}",LocalDatTim.now());
LongordrId=ordrSrvic.ordr();
concurrntHashMap.put(ordrId,ordrId);
tradingSrvic.pay(ordrId);
log.info("完成时间:{},订单id:{}",LocalDatTim.now(),ordrId);
}catch(IntrruptdExcption){
.printStackTrac();
}catch(BroknBarrirExcption){
.printStackTrac();
}
}).start();
}
rturnnull;
}
使用cyclicBarrir,等待个线程同时到达后,进行下单操作,每完成一个订单,直接调用支付服务,打印每个线程的任务开始结束时间。
三、测试验证
.1执行测试
测试接口: