自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 mysql的datetime列的长度导致的问题

背景java使用mybatis框架,更新一个datetime数据类型的值,插入后查询获取该字段并转成时间戳,发现插入前的时间戳和取出后的时间戳不一致。原因更新后数据库里该字段的时间戳跟程序中的时间戳相比,后面三位数都是0,说明是数据入库时被截断了。后面三位数刚好是毫秒数,可以判断出是datetime数据入库时,毫秒数未被保存。通过查资料和核对表设计,发现该datetime列的长度为0,即保存0位毫秒数。解决办法如果需要保持入库时程序中的时间和数据库里的时间精度一致,有以下两种方案:可以通过

2021-06-18 11:55:18 2829

转载 缓存与数据库的一致性问题

引用自博主 striveb 的原创文章https://blog.csdn.net/striveb/article/details/95110502

2021-01-25 10:10:48 127

原创 读取redis数据反序列化导致的线上事故分析

背景线上发版时,由于是多个节点分批发布,所以会有一部分服务节点是新代码,一部分服务节点是旧代码。在发布一半节点以后,线上陆续收到反馈了问题。排查和分析过程排查也比较简单,查看异常信息错误日志时,日志里就打印出了明确的错误信息:org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Unrecognized field一个序列化异常,原因是无法识别的字段。再结合本次发版的内容,是

2020-09-10 22:30:00 339

原创 redis慢查询导致的线上事故

背景接入流量涨了将近一倍时,用户就反馈系统的反应很慢,发起一个请求后,要很久才能实际看到响应的结果。排查和分析过程1.因为用户是在浏览器页面上操作的,所以做的第一件事就是打开网页和开发者工具,然后模拟用户操作发起请求。发现这个过程有些操作的响应是很快的,而有些不是,初步排除是服务出了问题(内存溢出,死循环等),然后根据请求的响应时间确定出现延时的接口。2.确定了接口后,查看接口的实现,发现全部都是基于redis的读操作。初步判断是redis出了问题。马上登上redis服务器,查看redis进程的各项

2020-08-30 20:11:35 252

原创 Springboot下RequestMappingHandlerMapping的实例化

最近突然对springboot环境下webmvc的初始化感兴趣,于是就写了这篇文章记录一下这个过程的一部分作为笔记,方便以后忘记的时候查阅。首先,从springboot启动的类开始跟起。@SpringBootApplicationpublic class EurekaApplication { public static void main(String[] args) throws Exception { SpringApplication.run(EurekaApplica

2020-07-16 09:24:37 1335

原创 关于ArrayList抛出的UnsupportedOperationException异常

场景很常见的场景,有一组集合,需要遍历集合,然后去掉集合里面的多个对象。现象当调用iterator的remove方法时,报出了异常"UnsupportedOperationException"。原因分析打断点对源码进行调试,发现遍历的集合类是Arrays.ArrayList类,继续跟踪,发现remove方法并没有覆盖AbstractList的remove方法,所以调用remove方法的时候直接抛出了一个UnsupportedOperationException异常. //AbstractList

2020-06-01 19:25:31 533

原创 关于使用netty进行通讯连接时连接断开重连的错误实践

问题线上监控发现某个服务所在的容器CPU使用率很高,内存也不低。问题排查1.使用top指令查看是什么进程的CPU使用率最高,发现是java进程,再使用top -Hp对进程内的线程进行监控,查看是那些线程的CPU使用率那么高。执行指令后得出几个异常的数据值:1.线程数有一千多个,2.有九个线程的CPU使用率一直很高。2. 使用jstack导出java进程的栈信息,根据步骤1中CPU使用率高的...

2020-03-01 23:49:15 2911

原创 mysql分组后如何取第一条或最后的一条数据

这里只介绍在表数据有顺序可排序(时间,数字大小等)的情况下的分组取第一或最后一条数据:https://blog.csdn.net/li_jian_fei/article/details/86162962

2019-09-08 23:16:34 5647

原创 排查问题的思路总结

1.当按照正常的步骤使用某开源项目(如按步骤使用tk.mybatis使用listInsert方法)出现无法理解的异常时,先试试升级最新的版本运行一遍程序,看是否运行正常,如果正常则是项目自身bug,可以查看官网并确定升级后的版本。...

2019-06-27 00:00:29 716

原创 关于使用druid数据源连接Oracle导致的SQLRecoverableException(socket read timeout,关闭的连接等)

背景数据源初始化后,获取Oracle的连接进行查询操作,相隔 半个小时 左右,再次对同一数据库进行查询操作。问题第二次查询的时候,就会出现如下一些异常情况2019-06-05 14:17:58.247 [CorePoolHandler-thread-6] ERROR [LOGID:] com.alibaba.druid.pool.DruidDataSource - discard conn...

2019-06-18 20:00:00 18866 11

原创 分布式集群架构下的mysql错误 "too many connections"

背景项目采用微服务,分布式集群的方式进行部署,每个服务有2至3个节点。问题新增了一个服务,开了两个节点,发布到线上环境后,过了一段时间,发现其他服务的消息积压了。原因经过查看各个相关服务的日志,发现数据库无法写入,日志中首先出现了Communications link failure,The last packet successfully received from the serve...

2019-05-02 01:10:27 154

原创 关于在数据量比较大的时候进行插入或更新操作的问题

背景最近需要每天从A库拉取5W+数据,然后需要插入B库,而且插入的过程,要先判断是否需要插入,判断后再进行插入或更新操作。问题如果每条数据都要先进行数据库查询看库中有没有数据再进行更新或插入操作,就会多出5W+的查询操作,每次又涉及到数据库连接的断开和连接,这样就导致性能的下降和时间的提高。解决办法使用 ON DUPLICATE KEY UPDATE 可解决此问题,将判断逻辑交由数据库去...

2019-04-25 23:09:42 1698 1

原创 关于SpringMVC解析json参数时解析失败的问题

情景项目中某一个接口使用@RequestBody将传入的Json字符串参数解析注入进封装的参数对象中,但是前台发送请求后却总是报错,一直提示json解析失败,但是在swagger中测试该接口却成功,于是开始了JSON参数的对比,并一点一点猜想并排除:是否String值的类型没有用双引号、是否布尔值需要双引号、是否字符编码不一样,最后在格式化工具的帮助下发现了问题。两者参数对比{userna...

2019-04-03 23:34:10 1837

原创 关于对数据库查询结果排序时,将特定的某个值排在最前面的问题

应用场景前台传入一个查询字段id,要求查询后返回的结果中,该name所在的数据在第一行,其他数据行按照正常的字典序排序。解决方法在order by语句中,使id字段等于前台传入的值,则整个表达式会作为排序的依据,如前台传入2:则结果会先将id=2的数据输出,其他行则按字典顺序或其他排序字段的顺序列出。...

2019-04-01 23:29:33 14236 3

原创 mysql中text和varchar的区别

最近在做项目的时候,mysql数据库需要用到text型的字段保存数据。平时都是习惯将字符型的数据默认值设置为“”,于是使用的时候取出text类型的字段按照默认值为“”处理,当出现错误的时候才发现text类型的字段默认值只能为null,于是好奇varchar和text还有什么区别。首先打开mysql官网查看文档,查看 DataTypes 目录下的 The BLOB and TEXT Types 小...

2019-03-12 10:38:12 5923

原创 jquery使用attr()方法对checkbox设置checked属性为true时,勾选框没反应的问题以及解决办法

问题情景:商品的全选和部分选中,单个商品取消勾选后再选中,想通过attr(“checked”,true)使checkbox勾选,但是页面上没反应。首先打开页面初始化是全选中的,此时全选的checked属性为checked。这是对一个商品取消选中,然后再次选中的情况,此时通过attr()方法设置checked为true,但是页面上没反应。解决办法通过百度查找attr()和prop()的...

2019-03-10 16:12:19 5522

原创 mysql的远程连接问题以及解决办法

场景部署项目时,数据库连接url使用了ip地址而不是localhost,导致启动项目时连接池无法连接数据库而报错。解决办法

2019-03-07 17:12:04 135

原创 在spring boot项目中使用maven的profiles无法替换资源文件中的占位符的原因和解决办法

原因在springboot项目中,本来想通过maven的profiles和resources插件对资源文件进行动态打包的,但是发现配置好后,资源文件中的占位符就是无法被替换为值,于是想起springboot项目依赖了spring−boot−starter−parent,于是翻看此parent的pom文件,发现此pom中使用了resources插件,同时引用了{}就是无法被替换为值,于是想起spr...

2019-03-07 12:32:42 3119 4

原创 jmeter压力测试数据

1、硬件:cpu:因特尔酷睿i5-7300HQ,4核,2.5GHz内存:8G磁盘:固态硬盘2、软件:springboot内嵌tomcat、mysql、mybatis、redis、jmeter3、软件的配置:除mysql之外,其他软件均采用默认的配置。Mysql则修改了等待时间和初始线程池和最大线程池:datasource.c3p0.minPoolSize=10datasource....

2019-02-18 20:40:15 587

原创 基于安卓7.0和AccessibilityService自动抢单软件的总结和心得

前言 这篇文章重点在于实现下拉和点击功能的思路,以及此次成功实现功能后的心得体会,其他方面的内容将简单描述,希望能对热爱开发一些实用性工具的开发者有所帮助。开发环境准备 安卓开发环境Anstroid Studio和JDK,windows。实现过程AccessibilityService类的介绍和使用,直接百度搜索即可。在了解并注册了AccessibilityService服务类后...

2018-12-10 10:48:12 2235 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除