关于springboot并发请求量超过20时请求响应缓慢的问题

上午发现生产环境中的调控云模型服务(dcloudmodelservice)因为请求并发多而导致的请求响应迟缓的问题,严重影响到用户登录以及与此服务相关的其它服务,导致一整个上午电话不断,排查很久,最初以为是zookeeper服务注册问题,后来经过排查,跟zk没关系,然后排查调控云模型服务问题,只要将模型服务重启一下,问题就会好一会儿,一段时间后,请求又会积压,必须不停重启,直到找到最后的问题所在,即并发请求太多导致,中间有考虑加nginx代理,无法满足生产需求,后来发现是一直存在的数据库视图问题,因为MySQL数据库视图套视图,导致执行时特别费时间,需要5s左右才可以出结果,而且模型服务是循环查询这个视图,来多少请求就查多少次,导致大量请求被积压,有些请求由于等待响应超时,直接放弃等待,导致大量服务卡顿甚至卡死,然而模型服务却一直在运行,业务逻辑没问题,后经过修改数据库视图为查询一张表,将原视图里的数据抽取到物理表中,再将此物理表查询语句做为视图供模型服务使用,才解决了此问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种基于Spring Framework的快速开发应用程序的工具,它能够在不需要大配置的情况下快速搭建应用程序,为Java开发者提供了一个更优雅,更快捷的方式。 在现代化的web应用程序中,高并发吞吐的实现是非常重要的。Spring Boot作为一种轻级的框架,提供了许多工具和技术来提高应用程序的并发吞吐Spring Boot提升并发吞吐的主要方法有: 1. 异步处理:Spring Boot有许多异步处理机制,如DeferredResult和CompletableFuture。采用异步处理可以大大提高应用程序的吞吐,因为它不会阻塞主线程,允许处理更多的请求。 2. 缓存技术:Spring Boot提供了多种缓存技术,如Ehcache和Redis。使用缓存可以减少从数据库中获取数据的次数,从而提高响应间和吞吐。 3. 数据库连接池:Spring Boot内置了Tomcat、Jetty等嵌入式服务器,这些服务器使用数据库连接池,能够更好地管理数据库连接,以提高应用程序的并发能力。 4. 并发编程:Spring Boot使用并发编程技术,如线程池来提高并发处理请求的性能。它提供了各种异步处理的技术,如多线程、分布式锁等。 5. 使用更高效的序列化方式:Spring Boot推荐使用更高效的序列化方式,如Jackson或Fastjson。这些序列化方式可以大大改善应用程序的性能,并减少网络带宽的使用。 总之,Spring BootJava开发者提供了很多提高应用程序并发吞吐的工具和技术。为了更好地利用这些技术,开发者需要具备一定的并发编程知识,以更好地驾驭这些技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值