- 博客(61)
- 资源 (10)
- 问答 (3)
- 收藏
- 关注
原创 [特殊字符] 事故报告:Hikari 连接池泄漏事故 - Connection leak detected
摘要:系统检测到数据库连接泄漏,原因为多线程批量处理时未正确管理连接生命周期。问题代码在线程池中复用连接而未及时关闭,导致连接长期占用。根本原因是线程池的长生命周期与ThreadLocal的短生命周期假设冲突,使框架的自动连接回收机制失效。解决方案有两种:1)调整报警阈值(临时方案);2)重构代码确保每个任务独立获取和释放连接(推荐方案)。修复后的代码应在每个任务中显式开启、提交/回滚并关闭会话,保证连接及时归还。该案例揭示了线程池环境下资源管理的特殊注意事项。
2026-01-30 10:38:58
144
原创 线程池在数据迁移中的应用 - ThreadPoolExecutor
本文介绍了一个MongoDB到MySQL数据迁移项目的线程池优化方案。针对单线程处理效率低下的问题,设计实现了ThreadPoolUtil工具类,具有以下特点:1)基于CPU核心数动态配置线程池参数;2)完善的线程命名和异常处理机制;3)支持优雅关闭和状态监控。在数据迁移应用中,通过线程池并行处理数据转换任务,配合CountDownLatch同步和分批插入策略,显著提升了迁移效率。该方案适用于需要高效处理批量数据的场景,实现了从原始查询到最终入库的全流程并行化处理。
2026-01-15 16:11:27
339
原创 Java集合线程安全实践:从ArrayList数据迁移问题到synchronizedList解决方案
这段代码看起来没啥问题,其实里面存在一个线程安全问题,最终targets的size 可能会小于 all.size。这是因为ArrayList 本身就不是线程安全的集合。之前在做数据迁移过程中,由于自己疏忽吧,先看一下代码。
2026-01-15 10:24:50
350
原创 CountDownLatch:Java并发编程的“倒计时门闩(shuan)”
所有运动员准备好后(countDown),裁判才发令(await结束):所有人到齐后(countDown),大巴车才出发(await结束):凑够人数(countDown),才能成团发货(await结束)
2026-01-14 16:35:42
239
原创 CompletableFuture 开启异步线程,主线程不等待
在Java中CompletableFuture用于异步编程,异步编程是编写非阻塞的代码,运行的任务在一个单独的线程,与主线程隔离,并且会通知主线程它的进度,成功或者失败。在这种方式中,主线程不会被阻塞,不需要一直等到子线程完成。主线程可以并行的执行其他任务。一般应用场景:在业务开发中可能会遇到调用多个第三方接口,同时要求主流程不被阻塞。使用这种并行方式,可以极大的提高程序的性能。
2024-09-04 20:16:36
709
原创 java8、lamda、list分组转map,并且value只保留一个
【代码】java8、lamda、list分组转map,并且value只保留一个。
2024-09-04 18:13:28
687
原创 Java四大函数式接口:掌握函数式编程的核心武器Function、Consumer、Supplier、Predicate都是什么意思?怎么用?
【代码】Function、Consumer、Supplier、Predicate都是什么意思?怎么用?
2024-09-04 17:44:02
257
原创 springboot实现上传文件接口(简单版)
上传完成之后需要访问,可以使用springmvc静态资源代理(线上项目不推荐,建议使用nginx静态资源代理)使用springboot实现一个最简单版本的上传文件接口。
2024-04-07 10:27:03
689
原创 springboot实现国际化
今天在开发过程中,遇到国外客户,要求项目一些返回msg中,不能再有中文,于是便有了国际化需求。前端可在接口请求头中添加 Accept-Language=en/zh 用于区别中英。messages_en.properties 英文配置文件。messages_zh.properties 中文配置文件。messages.properties 国际化主文件。
2024-03-08 10:48:43
905
1
原创 java实现flv转mp4/视频格式转换
java实现flv转mp4/视频格式转换,今天在开发过程中,突然遇到给前端flv格式视频还播放不了,flv在开发印象中就是跟mp4格式差不多,本地静态视频资源,怎么还就播放不了,为此只能特别做下视频转换。
2024-01-31 09:42:59
1320
原创 java实现图片裁剪
在日常开发中,偶尔会遇到产品提出要求“图片裁剪”,对于这种需求那可是一头雾水啊,以前光记得crud了,现在突然来了个大活。需求:我们只裁剪下半段照片。
2024-01-24 10:13:44
1322
原创 关于微信/支付宝等平台验签/签名sign生成算法
这是微信支付统一下单接口文档,最简单的理解就是,服务端为了安全考虑,要求客户端在请求时,将请求参数全部进行加密生成一个密文传过来,然后服务端在通过请求参数进行加密生成密文,比对这俩密文是否一样,如果一样说明本次请求是安全的。一般文档会告诉你,先将所有参数按照ASCII码从小到大排序,中间key=value拼接,各个参数之间&拼接,然后再将秘钥拼接,最终采用MD5方式加密转大写就可以生成sign。一般在对接这种平台,会提供接口地址、请求方式、请求参数、appid、appsecret。
2023-12-08 15:17:23
1764
原创 java 对视频/音频/各种文件进行加密解密
本文使用AES对称式加密,对各种文件进行加密/解密,只需要给一个秘钥,还有资源目录以及输出目录即可。纯属小爱好,java 对视频/音频/各种文件加密解密。
2022-09-29 14:23:46
3192
4
原创 关于AES加密报错 InvalidKeyException: Key length not 128/192/256 bits.
关于AES加密报错 InvalidKeyException: Key length not 128/192/256 bits.
2022-09-29 10:32:32
5559
原创 如何提升自己的运气
运气"是个很奇妙的东西,数学家会说这个东西就是概率而已,没有什么好说的。而物理学家会说,运气可以用量子力学来解释,属于混沌学的范畴,是一门严谨的科学。当然,大多数人认为运气纯粹是玄学,是故弄玄虚。谁能改变自己的运气呢?我是这样看的,运气是客观存在的,里面包含的是概率,但更多的是客观规律和人性。我先说客观规律。查了一下数据,过去3年,每年死于交通事故的人数都在6万以上,也就是每天164个人。那么司机怎么样才能让自己运气更加好呢?你去调查一下那些事故案例就知道了,有酒驾的,有不遵守交通规则的,有大
2022-02-23 09:38:11
606
原创 关于lamda的sort多字段排序
今天遇到个需求,要按照两个字段排序(一个倒序一个正序),乍眼一看用sql(order by)就ok了,结果实际情况不是想象那样,那个数据不是直接sql能查出的,需要在代码中做一些处理。先给上个栗子:@Data @AllArgsConstructor @ToString public static class Student { private Integer age; private Integer score; } pub
2021-12-24 10:25:14
1859
3
转载 java适合私活的快速上手项目
1.D2admin开源地址:https://github.com/d2-projects/d2-admin文档地址:https://d2.pub/zh/doc/d2-admin/效果预览:https://d2.pub/d2-admin/preview/#/index开源协议:MIT2.vue-element-admin开源地址:https://github.com/PanJiaChen/vue-element-admin文档地址:https://panjiachen.gith
2021-12-03 17:48:24
411
原创 每个月存500零花钱,第9年就会有10W?
假设你每个月存500零花钱,找个年化15%的产品,那么第9年你猜下你会有多少钱?答案是:115821,过十万了,可以轻轻松松买个紧凑版汽车了。再假设程序员工资算是比较高了,每个月存5000元,那么第9年你猜下会有多少钱?答案是:110W,你没有看错,然后第12年过200w,第15年过300w,第18年过500w,第23年过千万,第30年资产近乎3千万。复利是一个很神奇的数学公式,废话不多说了,先上我的计算代码供大家学习: /** * 复利计算器 *
2021-09-02 18:31:14
608
原创 推荐几个优秀的Mongodb 可视化管理工具
1.NoSQLBooster(mongobooster)NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它自带一些mongodb工具来管理数据库和监控服务器。这个可以手写SQL语句运行非常非常棒的一款。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等。它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBoo
2021-08-04 10:45:55
1397
原创 MySQL删除重复数据保留最新一条
伙伴们经常线上会有一些脏数据我们要进行去重处理,例如我们有一张user表里面有三条数据,现需求按照age进行删除重复数据,每个年龄只能保留一条并且是最新的一条1.我们先来验证一下重复数据-- 验证sqlSELECT age,COUNT(*) FROM user GROUP BY age;18岁有两条,19岁有一条,我们只要删除18岁中id最小的那一条记录即可2.去重处理DELETE FROM USER WHERE age IN ( SELECT t1.ag
2021-07-08 14:51:15
1349
2
原创 java Hutool发送邮件附带附件 使用文件流、字节数组方式
MailUtil.send();无法发送文件流,//这个方式只能传入本地File,无法传入网络资源MailUtil.send();
2021-06-16 18:09:29
4116
7
原创 java实现远程资源地址文件转本地文件
/** * 远程资源地址文件转本地文件 * * @param fileUrl 资源地址 * @return * @Description 网络资源转file(记得用完以后必须删除该临时文件) */ public static File urlToFile(String fileUrl) { String path = System.getProperty("user.dir"); File tempFile.
2021-06-16 17:59:10
1008
原创 docker容器之间相互访问解决方案
docker 提供network 创建一个网桥,让彼此多个不同容器之间可以进行访问。1.创建network 网桥docker network create test-network2.启动容器带网络
2021-06-10 17:32:35
1054
原创 springboot监听 redis 中的key值过期,进行时间通知
,<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>
2021-06-09 16:57:25
649
2
原创 ES启动报错 mamaster not discovered yet,this node has not .......
master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and this node must discover master-eligible nodes [node-1] to bootstrap a cluster: have discovered 报错原因:主节点尚未被发现错误个人解决方案:先按照我这个copy#es会自动发现在同一网段下的es,# 如果在同一
2021-05-26 17:49:58
5622
原创 docker启动es报错 [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase
使用docker run 启动es 报错如下处理方法:vi /etc/sysctl.conf添加如下代码:vm.max_map_count=262144刷新系统配置sysctl -p最后就启动成功了
2021-05-25 16:08:12
1235
原创 这是一篇对xxl-job的入门理解
xxl-job是什么?我们先百度看一下里面有解释道:这是一个分布式任务调度平台,可以这样理解在分布式环境下的完全独立出来的定时器项目,也是一个独立的项目独立运行;我们为什么要使用它:因为定时器如果写在业务项目中会非常的占用内存,而且定时器多了很容易让服务崩掉,所以当我们的业务量上来的时候一定要和定时器任务模块分开。那么这里其实完全可以自己独立搭建一个springboot项目去专门跑定时器任务(其实可以,不过没有xxl-job好用,xxl-job学习简单、轻量级别、方便扩展而且它支持集群分片等等,而且
2021-05-21 17:35:58
544
1
转载 http的长连接和短连接(史上最通俗!)
1.以前的误解很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉。今天通过一番研究,终于明白了这其中的奥秘。而之前,也看过长连接相关的内容,但一直都是云里雾里的。这次之所以能在这么短的时间里搞清楚,和自己技术的沉淀密不可分。因此,这里借着这个机会,再次强调一下,千万不要试图去研究你研究了很久都整不明白的东西,或许是你的层次不到,也或许是你从未在实际的应用...
2021-05-12 11:31:57
301
1
原创 Log4j2支持异步打印提高打印输出速度
Log4j2支持异步打印提高打印输出速度pom依赖添加<!--log4j2异步支持--><dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId></dependency>全局模式2两种第一种:resources 下创建属性文件 log4j2.component.properties# lo
2020-12-24 14:47:38
476
原创 mysql行转列
mysql行转列mysql三大范式第一范式 :每个列具有原子性,不可再分(现代关系型数据库都符合);第二范式:每个列都和主键相关(每个表描述同一个事物);第三范式 :每个列都和主键直接相关,不存在传递依赖;开发过程中表的设计一般符合第三范式,范式越高、表就越多、结构越复杂、性能越差。能出现行转列的原因,大多数是由于历史原因或者性能原因,都使用了违反第一范式的设计模式。即每个列具有原子性,不可再分(具体结构见下表)。 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果。
2020-11-27 13:57:29
255
原创 mysql如何计算某字段用逗号分割的数量
mysql如何计算某字段用逗号分割的数量如上图我们要计算出每一行中的车牌数量;SELECT LENGTH(bus_number) - LENGTH(REPLACE(bus_number,',','')) + 1 LENGTH FROM tb_bus_number ;分析:原始字段内容的长度 - 把逗号进行删除后的内容长度 = 该字段中有多少个逗号;然而最后一位是不带逗号的所以要+1;以上实现只是一条思路,也许要有更好的函数之类的。...
2020-11-20 10:19:23
2971
2
原创 解决maven依赖包下载慢的问题
修改maven 目录下setting.xml配置文件,在mirrors中添加一下配置 <!--配置alimaven镜像--> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>
2020-09-16 14:20:59
169
转载 这是我读过写得最好的【秒杀系统架构】分析与实战!
1 秒杀业务分析正常电子商务流程 查询商品; 创建订单; 扣减库存; 更新订单; 付款; 卖家发货; 秒杀业务的特性 低廉价格; 大幅推广; 瞬时售空; 一般是定时上架; 时间短、瞬时并发量高; 2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:1、对现有网站业务造成冲击秒杀活动只是网站营销的一
2020-09-10 17:28:50
415
原创 推荐一款非常非常好用的java插件-Hutool
Hutool这是一款包含大家在开发过程中想封装一些自己的方法,他全都帮你们封装好的一款java插件,能够更好地提高开发效率;https://hutool.cn简介Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hut
2020-09-10 11:23:54
818
1
java 对视频/音频/各种文件进行加密解密
2023-11-29
SourceTree2.6.10(中文版)安装包.zip
2020-04-23
简单的页面注册到数据库
2018-01-12
SecureCRTSecureFX_7.0.0.326中文版.rar
2020-09-10
springboot整合dubbo简易的demo
2019-07-29
关于ByteArrayOutputStream 引起的 OOM
2022-10-01
mysql子查询索引失效问题
2021-12-01
java实现电子围栏功能。
2021-11-11
cassandraTemplate 执行sql语句不能同时使用in 和 order by
2021-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅