`
flashing
  • 浏览: 355052 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

诡异的RDS问题和springboot的devtools

 
阅读更多

一、、、

话说今天客户遇到了统计数据查询非常缓慢的问题,情况比较诡异,在某次程序升级之后突然发生。

鉴于之前rds(mysql5.6)表现还不错,所以以为可能是用户单表数据接近千万所以导致查询有问题,产生瓶颈了,导致iops一直跑满。然而数据全部同步到本地的mysql5.7之后发现,本地速度很快啊。。。

只好开始看aliyun的慢日志,发现竟然有些查询需要近20分钟!把这些查询挑出来explain,悲催的发现,本地和服务器的查询计划完全不一样...服务器的根本就没用到索引,虽然索引存在。

再然后就开始了漫长的分析过程,why why why...后来联系一位oracle master的朋友咨询了一下才明白,这种破事竟然很正常...最终我灵机一动,删掉了服务器的索引然后重建,发现终于查询计划可以用上索引了,看来是索引莫名其妙的失效了!

这个事情让我对rds的机制产生了非常不靠谱的赶脚,另外即使能用索引了,服务器和本地使用的索引竟然不一样,完全莫名其妙;比如用状态和时间查询,存在这两个字段的联合索引,竟然在rds mysql 5.6上会落到另外一个奇怪的索引上。

下面再买rds尽量买5.7了,我觉得应该是mysql5.6的不靠谱导致的;另外这个数据量,也许应该考虑一下分区了。

二、、、

开发团队之前用springboot的时候一直在idea里面配合jrebel,结果新来了一批开发人员之后,jrebel安装的乱七八糟,导致做点什么都得重启项目,实在崩溃。

于是调查了一下发现springboot-devtools依赖竟然就是解决这个的,实在很意外,因为早几年知道spring loaded,这东西也是当时grails 2.x的自动编译加载的基础,实在不是太好用,没想到现在springboot又自己做了一个小插件,看起来似乎也不麻烦。

具体配置上也比较简单:

1.添加依赖(maven or gradle)

2.添加代码

System.setProperty("spring.devtools.restart.enabled", "false");

否则重新编译会引发项目自动重启

3.src/main/resources/config/application-dev.yml,spring.devtools.livereload.enabled: true

这个配置比较关键,会编译后自动加载,很好用。

另外说一下的是,如果有jrebel启动,devtools会自动禁用,采用jrebel;另外devtools好像不具备自动重新加载mybatis的能力,有这个需求最好是jrebel了。

 

 

1
0
分享到:
评论

相关推荐

    解决SpringBoot使用devtools导致的类型转换异常问题

    通过上述的分析和解决方案的介绍,我们可以看到在使用SpringBoot的devtools工具时,需要考虑到类加载器的使用问题,特别是在多模块项目或者特定的框架搭配使用时,这可能导致一些意外的异常。通过添加META-INF/...

    SpringBoot Devtools实现项目热部署的方法示例

    SpringBoot Devtools实现项目热部署的方法示例 SpringBoot Devtools是SpringBoot框架中的一种开发工具,主要用来实现项目热部署,热部署可以大大提高开发效率,减少重复劳动。下面我们将详细介绍SpringBoot ...

    SpringBoot2.X Devtools热部署实现解析

    总的来说,SpringBoot2.X Devtools的热部署功能通过自动化代码变更的检查和应用重启,极大地提升了开发效率。只需简单的配置,开发者就可以享受到这种便利,专注于代码编写,而不必频繁地进行手动重启操作。

    一篇文章带你搞定SpringBoot中的热部署devtools方法

    本文将详细介绍如何在SpringBoot中使用devtools进行热部署,并探讨其工作原理。 首先,要启用SpringBoot的热部署功能,我们需要在项目的`pom.xml`或`build.gradle`文件中添加Spring Boot DevTools的依赖。对于Maven...

    spring-boot中使用spring-boot-devtools的实现代码

    若要更改此行为,可以在`application.properties`中设置`spring.devtools.restart.exclude`,比如排除`/static`和`/public`目录下的文件: ```properties spring.devtools.restart.exclude=static/**,public/** ``` ...

    IntelliJ IDEA中SpringBoot项目通过devtools实现热部署的方法

    IntelliJ IDEA中SpringBoot项目通过devtools实现热部署的方法 1. 添加devtools依赖项:在pom.xml文件中添加spring-boot-devtools依赖项,以便在IntelliJ IDEA中使用热部署功能。 知识点:spring-boot-devtools是...

    【Springboot项目修改后不需要重启---springboot项目的热部署】.docx

    为了实现SpringBoot项目修改后无需重启即可生效,即所谓的热部署,我们可以利用SpringBoot提供的devtools(开发者工具)和其他配置。以下是对这个主题的详细解释: 1. **SpringBoot DevTools (开发者工具)** ...

    SpringBoot实现devtools实现热部署过程解析

    SpringBoot 是一个流行的 Java 框架,为了提高开发效率和降低开发成本,SpringBoot 提供了 DevTools 依赖项,以实现热部署过程解析。下面将详细介绍 SpringBoot 实现 DevTools 热部署过程解析的过程。 首先,需要在...

    springboot + devtools(热部署)实例教程

    Spring Boot的DevTools是开发者工具集,主要用于简化开发过程中的热部署问题。热部署是指在开发过程中,当代码发生变化时,无需手动重启应用,系统能够自动检测并重新加载修改后的代码,大大提高了开发效率。本教程...

    Spring Boot DevTools使用教程

    Spring Boot DevTools是一款专为Spring Boot开发者设计的强大工具,它极大地优化了本地开发流程,提供了自动重启和LiveReload功能。这个工具使得开发人员在修改代码后无需手动重启应用,即可实时看到代码变更的效果...

    SpringBoot整合Vue源码

    在现代Web开发中,SpringBoot和Vue.js是两个非常受欢迎的技术栈。SpringBoot简化了Java后端的开发流程,提供了快速构建微服务的能力;而Vue.js则是一款轻量级的前端框架,以其易学易用、组件化和高效的性能受到...

    SpringBoot 38道面试题和答案.docx

    随着 Spring 项目的发展,其复杂度逐渐增加,SpringBoot 应运而生,它构建在现有的 Spring 框架之上,减少了样板代码和配置,使得开发者能更快地启动和运行项目。SpringBoot 的主要优点包括: 1. **减少开发时间**...

    前后端分离的音乐播放系统(用户端)和音乐管理系统(后台管理) - SpringBoot+Vue

    - 今天毛毛张分享的是最近复现了一个练手的前后端分离的项目,改项目一个基于`Java`的`Springboot`框架和`Vue`框架,使用`MySQL`数据库的音乐管理系统,以满足用户对音乐的播放和管理需求 - **前端技术栈:** `Vue....

    SpringBoot之脚手架

    SpringBoot之脚手架是一个基于Java的项目,它集成了多个流行的技术框架,为开发者提供了一个快速入门和高效开发的平台。在这个项目中,我们主要关注SpringBoot的核心特性以及所集成的各种组件的功能和使用方法。 1....

    SpringBoot如何通过devtools实现热部署

    SpringBoot如何通过devtools实现热部署 SpringBoot是一款基于Java的开源框架,提供了许多实用的功能和配置项,其中之一就是热部署。在SpringBoot中,我们可以通过devtools实现热部署,避免每次修改代码后都需要...

    手写springboot

    5. **SpringBoot DevTools**: 开发者工具,提供了快速重启、热部署等功能,极大地提高了开发效率。 三、手写SpringBoot实践 在着手手写SpringBoot之前,我们需要理解上述核心组件的工作机制。下面,我们分步骤进行...

    基于springboot实现的opc 客户端

    - 创建SpringBoot项目:首先,我们需要创建一个新的SpringBoot项目,并添加必要的依赖,如Spring Web、Spring Boot DevTools等。 - 配置OPC客户端:引入OPC库后,需要配置客户端连接参数,如服务器地址、端口、...

    vuedevtools.6.5.0

    这使得你可以实时观察和修改数据,以便快速定位问题。 2. 组件树:它展示了应用中的组件层次结构,每个组件的props、data、methods、生命周期钩子等信息一目了然,方便理解和追踪组件间的关系。 3. 派生状态...

    vue3 devtools 版本6.5.0

    6. **错误和警告提示**:当你的Vue应用出现错误或警告时,Vue3 DevTools会在控制台中显示,帮助你快速定位问题所在。 7. **自定义设置**:Vue3 DevTools允许用户根据自己的需求调整设置,例如启用/禁用某些功能,...

    vue devtools6.4.5版本

    Vue Devtools 6.4.5 版本是一款强大的前端开发工具,专为Vue.js框架设计,用于在浏览器环境中进行调试和性能优化。这个版本的更新主要集中在提升开发者体验和修复已知问题,使得Vue应用的开发过程更加顺畅。下面我们...

Global site tag (gtag.js) - Google Analytics