自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 资源 (6)
  • 收藏
  • 关注

原创 关于springboot一个接口请求后,主动取消后,后端是否还在跑

1、最近在思考一个问题,如果一个springboot的请求的接口比较耗时,中途中断该请求后,则后端服务是否会终止该线程的处理,于是写了一个demo。4、发现即使取消请求后,springboot后端还是会进行业务处理,不会自动终止的。

2024-03-06 18:23:14 653

原创 java的safepoint介绍

可以参考下面wiki,讲的很详细。

2024-01-25 21:05:17 328

原创 Maven类包冲突终极三大解决技巧 mvn dependency:tree

(这一步非常重要哦,经常项目组pom.xml是相同的,但是就是有些人可以运行,有些人不能运行,俗称人品问题,其实都是IDE的缓存造成的了。这里有一个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,而C依赖于X的2.0版本,A究竟依赖于X的1.0还是2.0版本呢?A依赖于B及C,而B又依赖于X、Y,而C依赖于X、M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,是把照妖照,pom.xml用它照照,所有传递性依赖都将无处遁形,并且会以层级树方式展现,非常直观。

2024-01-09 21:55:14 1282

原创 ZGC垃圾收集器介绍

相比G1、Shenandoah等先进的垃圾收集器,ZGC在实现细节上做了一些不同的权衡选择。譬如G1需要通过写屏障来维护记忆集,才能处理跨代指针,得以实现Region的增量回收。记忆集要占用大量的内存空间,写屏障也对正常程序运行造成额外负担,这些都是权衡选择的代价。

2024-01-09 14:35:39 1085

原创 Redis遇到过的问题 (Could not get a resource from the pool )

其中查看所有连接的展示的列表内容我在下方标出,注意看下idle这个字段,代表的空闲时间,单位是秒,这时可以看到idle的时间非常长,所以我这边确定程序获取获取大量的redis连接资源并且没有释放。否则,断开与 Redis 的连接。需要注意的是redisTemplate使用的是自动管理连接池,按道理来说调用完之后会自动释放连接,但是当redis开启了事务的时候,就需要手动释放连接,所以解决方案有两种。这么常用的方法,基于习惯,Java 在 jdk1.7 之后为我们提供了一个很好的方法。

2023-12-25 19:54:04 1239

原创 common-pool的GenericObjectPool源码创建borrowObject方法研读

对象池主要管理对象的池,包含借用,归还,添加对象,校验对象是否有效等管理功能。

2023-12-21 11:05:48 435

原创 jedisCluster模式下使用scan命令来删除指定前缀的字符串

之前搜了网上很多文章,发现jedisCluster.getClusterNodes()在jedis的4.x版本获取的对象Map,而不是Map。针对这个情况进行代码改造。因业务需要,需要对指定redis的前缀批量删除,如果直接使用keys 命令在数据量比较大的情况下会导致redis集群崩溃或者业务hang住。利用scan通过分页方式来拿到指定的key前缀,在进行相关数据的删除。来获取jedisNode客户段,具体代码如下。

2023-12-20 18:42:58 652

原创 mysql 链接超时的几个参数详解

mysql5.7版本中,先查看超时设置参数,我们这里只关注需要的超时参数,并不是全都讲解。

2023-12-08 11:12:07 557

原创 分布式uuid常用的算法

2、百度的UidGenerator 介绍,适合容器化配置,同时兼容springboot。

2023-12-05 14:18:02 403

原创 日志埋点管理服务

提供一个日志管理模块。

2023-12-05 10:32:58 50

原创 springboot多线程安全demo

下面例子是线程安不安全实例。

2023-11-21 14:50:31 94

原创 redission源码解读

总的来说,如果只是简单的使用Redis进行一些基本操作,可以选择使用Jedis;如果需要使用到Redis的高级功能或者需要进行分布式开发,建议选择Redisson。而Redisson提供了更加丰富的API,包括分布式锁、集合、队列等高级功能。线程模型不同:Jedis是单线程模型,而Redisson是异步线程模型。支持集群模式不同:Jedis只支持基本的单机模式和主从模式,而Redisson支持Redis集群模式。可扩展性不同:Redisson具有更好的可扩展性,可以通过自定义配置实现更多的功能。

2023-11-20 16:24:49 142

原创 mysql隐式转换转换引起的bug

2、若字符串是以数字开头,且全部都是数字,则转换为数字结果是整个字符串;部分是数字,则转换为数字结果是截止到第一个不是数字的字符为止。理解: varchar str = "123dafa",转换为数字是123。3、若字符串不是以数字开头,则转换为数字结果是 0。本案例正好符合第三种情况,因为subject_id是int类型,而过滤条件是varchar类型,同时首字母是英文而不是数字,导致默认转换为0,所以查询出来不一样的结果。生产环境中遇到一个情况情况 ,过滤数据发现过滤不掉相关值情况,具体情况如下。

2023-11-10 11:10:37 733

原创 线程池阻塞队列长度设置失误导致任务一直被阻塞未能执行

3、更加上述线程池执行逻辑,因为业务执行很长时间,而阻塞队列设置很大,则导致后续提交的任务都放到阻塞队列了,从而导致任务挤压。改进措施,根据任务执行时间合理设置LinkedBlockingQueue的大小,比如设置20个,最大线程数也设置大点。1、生产环境中有个接口耗时比较久,然后自己的阻塞队列没有设置默认值,导致后续提交过来的任务一直在阻塞队列中,具体代码如下。2、线程池的执行逻辑。

2023-10-27 11:27:52 166

原创 同一个线程池执行不同类型的任务

1、同一个线程池可以执行不同的任务类型,也可以带返回值,也可以不带返回值的。

2023-10-20 17:39:05 283

原创 mysql查看连接池的命令

查看实时连接的个数 (瞬时值)

2023-10-16 15:20:31 377

原创 arthas 监控线程池相关对象

具体代码,需要设置类的变量,不能设置方法的局部变量。arthas监控命令。

2023-10-08 16:58:17 581

原创 AQS中 state 和 waitStatus 分别是干什么的?

它是AQS的核心字段之一,用于控制线程的访问和操作。字段用于表示节点在等待队列中的状态,通过这两个字段,AQS可以实现线程的等待和唤醒机制。字段,如果需要等待,则线程会进入等待状态;字段的设置和检查,AQS可以控制线程的等待和唤醒。类中的一个字段,在AQS中用于构建等待队列和条件队列。字段的含义和用途是由具体的同步器实现决定的。字段的值,根据具体的实现逻辑进行相应的操作。字段用于表示节点在等待队列中的状态。是用于管理线程等待和唤醒的重要字段。字段用于表示共享资源的状态或计数,而。字段,并唤醒等待的线程。

2023-10-07 17:33:34 319

原创 mysql mvcc级别相关总结

事务隔离级别。

2023-09-22 20:05:31 58

原创 mysql锁相关的总结

jd的死锁的案例,分析比较经典。-- 更详细的锁查看粒度。-- 类似rc的需求。

2023-09-22 20:05:28 114

原创 锁,事务,多线程的关系

事务具备原子性、一致性、隔离性和持久性(ACID)的特性,用于确保数据库的完整性和一致性。在并发环境下,多个线程或进程可以同时进行数据库操作,而事务机制可以保证这些操作按照一定的顺序执行,避免数据异常和冲突。通过合理地使用锁和事务机制,可以确保多线程环境下的数据一致性和操作正确性。在实际应用中,锁通常被用于控制对共享资源的访问,避免多个线程同时修改数据而导致的数据不一致问题。锁、事务和多线程之间有密切的关系,它们都是在并发编程中用于保证数据一致性和操作正确性的重要概念。

2023-09-22 16:19:22 368

原创 基于springboot线程池,来提高接口并发相关demo的性能压测和思考

【代码】基于springboot线程池,来提高接口并发相关demo的性能压测和思考。

2023-09-15 15:37:55 354

原创 springboot 基于异步线程池来提升接口查询性能

1、可以通过 设置异步线程池任务任务,这样可以大大提升接口性能。

2023-09-15 15:24:17 115

原创 基于springboot实现多线程抢锁的demo

使用 jstack 88023 |grep SimpleAsyncTaskExecutor-62 命令可以查看相关线程是否存在。本代码基于定时调度和异步执行,如果只加异步处理,会导致当前任务未执行完,下个任务到点也不会触发执行。

2023-09-04 19:00:35 580

原创 定时清理httpclient 闲置连接代码和http异常请求接口的开发

【代码】定时清理httpclient 闲置连接代码。

2023-08-10 15:33:48 222

原创 springboot异步多线程的实现

4、如果启用异步线程池,需要在启动类加上 @EnableAsync(proxyTargetClass = true) 注解。3、controller层服务调用。1、配置线程池相关参数。

2023-08-03 15:33:39 417

原创 springboot通过aop实现防止表单重复提交的

1、根据用户请求的参数进行hashcode,并写到一个redis,过期时间为5s。

2023-07-24 16:46:15 39

原创 Springboot项目报错解决方案

问题应该在本身的代码上,但是,我记得代码是测试过的,没有问题。但是,没有其他办法,只能顺着提示一步步寻找问题所在。最终,确实问题出在代码上。在排除问题时,一直没有发现什么异常,后续通过堆栈错误,看到最后的错误信息。3、每次修改过代码以后,都要记得进行测试,确保修改是正确的。4、迁移其他项目的Service服务时,看看调用的任务关系图。1、解决问题,不要急躁,要淡定,淡定,淡定。2、仔细看报错信息。

2023-05-19 19:33:28 291

原创 向量化引擎研读文章

1、 2、

2023-05-05 10:32:42 56

原创 mysql失败连接重试

package com.vip.dataeye.base.mysql;import com.vip.dataeye.common.Constants;import org.apache.commons.dbutils.DbUtils;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.ResultSetHandler;import org.slf4j.Logger;import org.

2023-04-14 11:57:17 148

原创 springboot Factory method ‘kafkaTemplate‘ threw exception

通过查询springboot的 包管理依赖的版本进行修复。发现是引入的kafka包的json冲突。

2023-03-23 15:38:07 344

原创 springboot请求数据链接突然中断后

在进行http请求的时候,客户端突然断开链接或者客户端自动取消连接的,服务端还是会进行所有流程处理的,只是在最后接口返回给客户端的时候会报通道链接异常。

2023-02-24 18:45:21 1297 1

原创 springboot使用多线程处理高并发接口

当线程增加到cpu的个数的时候,吞吐率会达到顶峰,

2022-11-08 16:38:27 5829 2

原创 java httpclient httpget方法如果有空格的bug进行修复

可以使用URLEncoder.encode()方法来解决,但是URLEncoder.encode()方法会将空格转换成+,解码后会发现+没有转换回来,这要特殊处理一下,将空格直接转换成%20,这里不用担心原参数中的+会被转成%20,URLEncoder.encode()方法会将原有的+转成%2B,将空格转成+在请求头参数或者返回参数存在中文时,出现乱码的问题。

2022-10-26 21:16:11 1970

原创 springboot 注册redis服务代码

2、其他地方引用时,只需要执行如下代码即可。

2022-08-31 10:45:09 337

原创 统计java内存使用率代码

代码】统计java内存使用率代码。

2022-08-15 20:44:20 417

原创 flink链接redis时候,集群close down是否会重连

flink连接redis时候,集群close down是否会重连。

2022-08-05 18:41:34 287

原创 flink 网络中断错误信息跟踪

生产中,突然间flink任务大规模重启,通过查看日记信息,发现网络断网了,具体错误信息如下。

2022-08-01 17:04:57 433

原创 jvm直接内存相关文档

直接内存可能导致OutOfMemoryError异常,由于直接内存在java堆外,因此它的大小不会直接受限于-Xmx指定的最大堆大小,但是操作系统内存是有限的,java堆和直接内存的总和依然受限于操作系统最大内存。读写文件需要与磁盘交互,需要由用户态切换到内核态。在内核态时,需要内存如下图操作。直接内存大小可以通过MaxDirectMemorySIze设置,如果不指定默认和堆的最大值-Xmx参数一致。使用NIO时操作系统划出的直接缓冲区可以被java代码直接访问,只有一份,NIO适合对大文件读写操作。...

2022-07-29 16:41:46 181

原创 SpringBoot设置环境几种方式

SpringBoot设置环境几种方式。

2022-07-28 18:04:04 488

kafka-manager-2.0.0.1_prod.tgz

kafka-manager 最新版本 2.0.0.1的编译包,支持kafka0.8.x--kafka2.x版本的监控, 解压即可使用, nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080,

2019-09-18

深入理解Java虚拟机第二版源码和pdf

本文件包含《深入理解Java虚拟机》第二版的书和相关源码,都是经过自己亲自编写验证的。

2019-04-01

JVM运行机制深入分析

JVM运行机制深入分析,适用于研究java开发的人员,想深入理解jvm

2019-04-01

《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版和源码

本文件包含《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版的书和相关源码,都是经过自己亲自编写验证的。

2019-04-01

ubuntu 科大源更新

喜欢科大源更新的朋友可以看看 ,而且科大源比较稳定,速度快@@

2011-11-17

杭电acm解题答案及报告

这是杭电acm100多个题目的代码合集。望对你们有帮助!!个人代码都提交上去了

2010-08-11

空空如也

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

TA关注的人

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