关于优化API接口响应速度

关于优化API接口响应速度。。。

今天只是粗略写写,关于这个优化设计的方面很多,接下来再仔细研究研究。

今天发现接口响应很慢,调开发者工具出来查看才发现接口居然耗时2秒左右,然后查了下后台逻辑,发现里面逻辑很多,有调用外部几个接口,还要查询数据库。

两个接口耗时都接近1.5秒了。看了下是查询工作流的接口,看来只能找平台部那边优化了。

剩下的就是优化我们这边系统的查询效率了。

首先需要分析为何慢了

  1. 是不是资源层面的瓶颈?
  2. 是不是缓存没添加,如果加了,是不是热点数据导致负载不均衡?
  3. 是不是有依赖于第三方接口?
  4. 是不是接口涉及业务太多,导致程序跑很久?
  5. 是不是sql层面的问题导致的等待时机加长,进而拖慢接口?
  6. 网络层面的原因?带宽?DNS解析?
  7. 代码不行?
  8. 未知?

对症下药

  1. 资源紧张,加机器,干上去,负载均衡搞起来!
  2. 加缓存可以解决的问题都不是什么大问题,存在热点数据可以将某几个热点单独出来用专门的机器进行处理,不要因为局部影响整体(这一次好像不涉及这个)
  3. 一方面与第三方沟通接口响应问题,另一方面超时时间注意把控,如果可以非核心业务能异步久异步掉。
  4. 把非核心的业务进行异步化操作。记住如果代码层面是非核心业务,但是会影响用户感知,需要慎重决定是否异步。
  5. 如果是代码不良导致加锁了,尽量优化索引或sql语句,让锁的级别最小(到行),一般来说到行差不多了。如果是单个sql跑慢了,需要分析是不是索引没加或者sql选的索引错了,索引该加的就加了,该force index也加了。
  6. 网路原因,需要找人员,单方面比较难有大的优化。
  7. 代码确实差,那也无药可救了。毁灭吧!

刚开始以为是机器性能不行,看了下系统负载,发现占用率并不高,好像也不是性能问题。

接着以为是应用优化,但是看了下 JVM 的相关参数和 Java 堆的使用情况,发现都不高,感觉应该是数据库的原因了,当时建表的时候没有建相关的索引。

然后考虑加下索引试试。

加了一个组合索引,还有一个单列索引。

加了之前在代码中加了时间记录,感觉有所提升。

剩下的就是外部接口的耗时了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于springboot+vue的游戏交易系统是一个前后端分离的全栈项目,旨在为用户提供一个安全可靠的游戏物品交易平台。该系统采用了当前流行的技术栈,后端使用Spring Boot框架,前端则采用Vue.js框架,实现了高性能、易扩展的应用特性。主要功能如下:用户管理:用户可以注册、登录、修改个人信息,以及重置密码等。游戏物品上架:用户可以发布自己的游戏物品,包括物品名称、描述、价格等信息。物品浏览与搜索:用户可以根据关键词搜索感兴趣的游戏物品,查看物品详情。交易功能:用户可以购买自己感兴趣的物品,并通过订单系统进行交易记录。消息通知:系统会实时推送交易状态给用户,确保双方及时了解交易进展。评价系统:买卖双方可以互相评价,形成信用体系。后台管理:管理员可以管理用户账户、游戏物品、订单等信息,维护平台正常运营。技术亮点:前后端分离:通过API接口交互,使得前端和后端可以独立开发和部署,提高开发效率。RESTful API设计:后端提供RESTful风格的API接口,方便前端调用。安全性:采用JWT(JSON Web Tokens)进行用户身份验证和授权,确保数据传输安全。数据库设计:使用MySQL作为数据存储,设计合理的表结构,保证数据的一致性和完整性。缓存机制:引入Redis作为缓存数据库,提高系统响应速度和并发处理能力。SEO优化:前端页面采用服务端渲染(SSR),提高页面加载速度,有利于搜索引擎优化。总结:基于springboot+vue的游戏交易系统是一个功能完善、性能优越的全栈项目,适合作为学习和商业应用的基础。通过该系统,用户可以方便地进行游戏物品的交易,同时为开发者提供了丰富的学习和实践机会。
本资源是一个基于微信小程序的悬赏信息发布系统,采用Java编程语言进行开发。该系统旨在为用户提供一个便捷、高效的平台,让他们能够轻松地发布悬赏任务并吸引志愿者参与。系统的主要功能包括:用户注册与登录:用户可以通过手机号码或微信账号进行注册和登录,以便在平台上发布和管理悬赏任务。发布悬赏任务:用户可以创建新的悬赏任务,设置任务标题、描述、截止日期等信息。同时,用户还可以选择任务的难度级别和奖励金额。查看悬赏任务:其他用户可以在平台上浏览已发布的悬赏任务,了解任务详情和要求。此外,他们还可以对感兴趣的任务进行报名参与。提交任务完成情况:一旦志愿者完成任务,他们需要将任务完成情况报告给发布者。发布者可以查看报告并给予相应的奖励。资金管理:系统支持实时查看和处理悬赏任务的资金流转,确保奖励能够及时发放给合适的参与者。为了提高系统的安全性和稳定性,我们采用了以下技术方案:使用Spring Boot框架进行后端开发,实现RESTful API接口;采用MySQL数据库存储数据;前端采用微信小程序框架进行开发,利用微信提供的API实现与后端的数据交互;对关键数据进行加密处理,确保数据的安全性;对系统进行性能优化,提高响应速度和用户体验。通过这个基于微信小程序的悬赏信息发布系统,用户可以方便地发布和管理悬赏任务,吸引志愿者参与。同时,发布者可以实时了解任务进度和奖励发放情况,提高工作效率。
基于SSM(Spring+SpringMVC+MyBatis)和Vue.js的汽车零部件加工ERP系统是一个集成化的企业资源计划系统,旨在帮助汽车零部件制造企业实现生产、采购、销售、库存等业务流程的自动化管理。 该ERP系统包含以下模块: 基础数据管理模块:包括客户信息、供应商信息、物料信息、员工信息等基础数据的录入、查询、修改、删除等功能。 生产管理模块:包括订单管理、生产计划、生产进度、生产质量等生产相关业务的管理功能。 采购管理模块:包括采购计划、采购订单、采购入库、采购退货等采购相关业务的管理功能。 销售管理模块:包括销售订单、销售出库、销售退货、客户服务等销售相关业务的管理功能。 库存管理模块:包括库存盘点、库存调拨、库存报废等库存管理相关业务的管理功能。 财务管理模块:包括应收账款、应付账款、财务报表等财务管理相关业务的管理功能。 统计分析模块:包括数据分析、报表生成、KPI考核等统计分析相关业务的管理功能。 该ERP系统采用前后端分离的开发模式,前端使用Vue.js框架进行开发,后端使用SSM框架进行开发。系统采用RESTful API接口进行数据交互,支持多种数据库访问方式,如MySQL、Oracle等。 此外,该ERP系统还具有以下特点: 可扩展性:系统具有良好的可扩展性,可以根据企业的需求进行二次开发和定制化。 易用性:系统界面简洁明了,操作简单易懂,适合各种用户使用。 安全性:系统采用了多层安全机制,保证数据的安全性和完整性。 性能优化:系统采用了缓存技术、异步处理等技术,提高了系统的响应速度和并发处理能力。 总之,基于SSM+Vue的汽车零部件加工ERP系统是一个功能强大、易于使用、安全可靠的企业资源计划系统,可以帮助汽车零部件制造企业提高

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值