当前位置: 首页 > news >正文

宁波甬晟园林建设有限公司网站台州永建建设有限公司网站

宁波甬晟园林建设有限公司网站,台州永建建设有限公司网站,北京网站建设服务中心,国外 网站页面设计【黑马点评】jmeter测试秒杀接口前后耗时#xff0c;和查询店铺缓存穿透接口 4.测试秒杀接口耗时4.1 修改VoucherOrderController4.2 测试原本的接口耗时 5. 测试缓存穿透 这篇是测试#xff0c;使用RabbitMQ消息异步处理订单#xff0c;以及不异步处理订单的耗时对比 以及查… 【黑马点评】jmeter测试秒杀接口前后耗时和查询店铺缓存穿透接口 4.测试秒杀接口耗时4.1 修改VoucherOrderController4.2 测试原本的接口耗时 5. 测试缓存穿透 这篇是测试使用RabbitMQ消息异步处理订单以及不异步处理订单的耗时对比 以及查询店铺时使用rediscaffeine二级缓存接口 4.测试秒杀接口耗时 需要修改VoucherOrderController中的秒杀代码在秒杀操作前后计算接口耗时 4.1 修改VoucherOrderController 注释掉原先的seckillVoucher方法 // PostMapping(seckill/{id}) // public Result seckillVoucher(PathVariable(id) Long voucherId) { // return voucherOrderService.seckillVoucher(voucherId); // }改为 PostMapping(seckill/{id})public Result seckillVoucher(PathVariable(id) Long voucherId) {long startTime System.currentTimeMillis();Result result voucherOrderService.seckillVoucher(voucherId);long endTime System.currentTimeMillis();long duration endTime - startTime;log.info(秒杀接口耗时{}ms,duration); // return voucherOrderService.seckillVoucher(voucherId);return result;}之后使用Apifox发起测试 命令行输出结构为3ms 4.2 测试原本的接口耗时 修改VoucherOrderServiceImpl.java代码如下 主要注释掉如下三个方法 handleVoucherOrderseckillVouchercreateVoucherOrder // TODO 注释掉以下部分以下部分为用RabbitMQ实现的异步秒杀 // Transactional // public void handleVoucherOrder(VoucherOrder voucherOrder) { // //1.所有信息从当前消息实体中拿 // // 获取用户 // Long userId voucherOrder.getUserId(); // //创建锁对象 // RLock redisLock redissonClient.getLock(lock:order:userId); // //尝试获取锁 // boolean isLock redisLock.tryLock(); // // //4.判断是否获取锁成功 // if(!isLock){ // //获取锁失败直接返回失败或者重试 // log.error(不允许重复下单); // return; // } // try{ // //获取代理对象(事务) // IVoucherOrderService proxy (IVoucherOrderService) AopContext.currentProxy(); // proxy.createVoucherOrder(voucherOrder); // }finally { // if (redisLock.isHeldByCurrentThread()) { // redisLock.unlock(); // } // } ///* Long voucherId voucherOrder.getVoucherId(); // //2.扣减库存 // boolean success seckillVoucherService.update().setSql(stockstock-1) // .eq(voucher_id, voucherId) // //判断当前库存是否大于0就可以决定是否能抢池子中的券了 // .gt(stock, 0) // .update(); // //3.创建订单 // if(success) save(voucherOrder);*/ // } // // // Resource // RabbitTemplate rabbitTemplate; // Override // public Result seckillVoucher(Long voucherId) { // //1.执行lua脚本判断当前用户的购买资格 // Long userId UserHolder.getUser().getId(); // Long result stringRedisTemplate.execute( // SECKILL_SCRIPT, // Collections.emptyList(), // voucherId.toString(), userId.toString()); // if (result ! 0) { // //2.不为0说明没有购买资格 // return Result.fail(result1?库存不足:不能重复下单); // } // //3.走到这一步说明有购买资格将订单信息存到消息队列 // VoucherOrder voucherOrder new VoucherOrder(); // long orderId redisIdWorker.nextId(order); // voucherOrder.setId(orderId); // voucherOrder.setUserId(UserHolder.getUser().getId()); // voucherOrder.setVoucherId(voucherId); // //存入消息队列等待异步消费 // rabbitTemplate.convertAndSend(hmdianping.direct,direct.seckill,voucherOrder); // return Result.ok(orderId); // } // // // // Transactional // public void createVoucherOrder(VoucherOrder voucherOrder){ // // 5.一人一单逻辑 // // 5.1.用户id // //6.扣减库存 // Long voucherId voucherOrder.getVoucherId(); // boolean success seckillVoucherService.update() // .setSql(stock stock -1) // set stock stock -1 // .eq(voucher_id, voucherId) // .gt(stock,0)// where id ? and stock 0 // .update(); // if (!success) { // //扣减库存 // log.error(库存不足); // return ; // } // // // save(voucherOrder); // // }添加以下内容 // 原先秒杀接口用来测试接口耗时Overridepublic Result seckillVoucher(Long voucherId) {// 1.查询优惠券SeckillVoucher voucher seckillVoucherService.getById(voucherId);// 2.判断秒杀是否开始if (voucher.getBeginTime().isAfter(LocalDateTime.now())) {// 尚未开始return Result.fail(秒杀尚未开始);}// 3.判断秒杀是否已经结束if (voucher.getEndTime().isBefore(LocalDateTime.now())) {// 尚未开始return Result.fail(秒杀已经结束);}// 4.判断库存是否充足if (voucher.getStock() 1) {// 库存不足return Result.fail(库存不足);}// 5.一人一单逻辑// 5.1.用户idLong userId UserHolder.getUser().getId();int count query().eq(user_id, userId).eq(voucher_id, voucherId).count();// 5.2.判断是否存在if (count 0) {// 用户已经购买过了return Result.fail(用户已经购买过一次);}//6扣减库存boolean success seckillVoucherService.update().setSql(stock stock -1).eq(voucher_id, voucherId).update();if (!success) {//扣减库存return Result.fail(库存不足);}//7.创建订单VoucherOrder voucherOrder new VoucherOrder();// 7.1.订单idlong orderId redisIdWorker.nextId(order);voucherOrder.setId(orderId);voucherOrder.setUserId(userId);// 7.3.代金券idvoucherOrder.setVoucherId(voucherId);save(voucherOrder);return Result.ok(orderId);}Overridepublic void createVoucherOrder(VoucherOrder voucherOrder) {}Overridepublic void handleVoucherOrder(VoucherOrder voucherOrder) {}测试结果如下400ms 5. 测试缓存穿透 修改http请求如下 1000并发下 10000并发下
http://www.w-s-a.com/news/806034/

相关文章:

  • 淘宝建设网站的意义大学生做那个视频网站
  • 如何提高你的网站的粘性建设银行流水网站
  • 微信h5在哪个网站做泰州专业网站制作公司
  • 现在.net做网站的多吗建设工程造价网
  • pc访问手机网站跳转违法网站开发人员
  • 网站前端做报名框wordpress 启动慢
  • 沈阳做网站客户多吗前端可以做网站吗
  • 网站设计规划书新媒体营销策略分析
  • dw个人网站主页怎么做天津工程信息建设网
  • 顺义做网站的公司网站页面设计基础教程
  • 安阳哪个公司做网站好企业没有做网站有的坏处
  • 网站开发有必要用php框架wordpress分页导航代码
  • wordpress建站seo鞍山制作网站哪家好
  • 网站空间流量查询上海门户网站制作
  • 网站开发技术是什么专业会的加强普法网站和普法网络集群建设
  • 上海建筑网站seo 推广
  • 乌兰察布做网站公司爱站网关键词挖掘工具站长工具
  • 白银网站建设白银申请网站空间怎么做
  • 免费炫酷网站模板网站建设需要用到什么软件有哪些
  • 电商网站开发 文献综述大型网站建设企业
  • 如何在建设部网站补录项目单仁牛商
  • 社保网站上做减员一直不审核软件程序开发
  • 网站友情链接购买天元建设集团有限公司资质
  • 南山商城网站建设哪家技术好株洲seo网站优化软件
  • 服务类网站建设18款禁用网站app直播
  • 电子商务网站建设需要物流网站开发公司
  • 网站的系统建设方式有哪些内容宁波网站建设公司
  • 网站开发 技术方案品牌建设总要求
  • 中卫网站建站设计seo专员的工作内容
  • h5商城网站是什么意思.net 网站开发框架