自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OB删除1.5亿数据耗费2小时

本篇是实际操作 批量处理数据以及线程池线程数设置 记录学习背景:有一张用户标签表,存储数据量达4个亿,使用OceanBase存储,由于其中一种标签类型tagType1刷数时逻辑错误,所以需要将该类型数据全部删掉。

2024-12-17 18:31:35 768

原创 MySQL ON DUPLICATE KEY UPDATE影响行数

Updates返回结果表示在执行批量插入或更新操作时,总共有多少个操作被执行。这包括成功插入的行数和因为主键冲突而被更新的行数。具体来说,每次更新操作会被计为2(一次插入尝试和一次更新),而每次成功的插入操作会被计为1。

2024-12-12 10:49:24 707

原创 MQ从指定时间点开始消费 不生效

由此可知,设置消费时间点位应该输入的信息为时间的YYYYMMDDHHMMSS格式,这个确实有点误导人了,参数名称为consumeTimestamp消费时间戳,但却需要一个String的时间字符串格式

2024-12-10 14:52:27 437

原创 ES使用script进行复杂排序

要实现的排序逻辑是:如果wecom_friend字段包含指定id则优先排序。当前参考是字段==比较,那我们的是数组,则直接使用contains方法尝试。es数据字段,关注_source内容,为自定义的es表字段内容。,当前字段为long类型,所以是不是要去掉引号。提示错误,需要改成long类型数字去匹配。执行可以看到,并没有匹配到。

2024-12-06 15:31:08 773

原创 项目切换Java21

目前我们所有的项目都是Java8的,突然交接过来一个Java21的项目,项目启动耗时挺久,本篇记录下问题以及解决方案。

2024-11-29 15:17:52 859

原创 Elasticsearch应用

基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。索引索引是 Elasticsearch 中的基本存储单元,是用于存储具有相似特征的数据的逻辑命名空间。相当于MySQL的库表文档Elasticsearch 以 JSON 文档的形式序列化和存储数据。文档是一组字段,这些字段是包含数据的键值对。每个文档都有一个唯一的 ID,您可以创建该 ID 或让 Elasticsearch 自动生成该 ID。

2024-11-28 14:07:23 483

原创 openapi回调地址请求不通过

对接企业微信 产生会话回调事件 接口问题解决。

2024-11-01 16:54:27 2211

原创 no WeWorkFinanceSdk in java.library.path

百度可知:可以输出对应路径 System.out.println(System.getProperty("java.library.path"))加载WeWorkFinanceSdk本地库,也就是由本文开头链接下载的WeWorkFinanceSdk.dll文件。分析报错:是在java.library.path去找文件的,所以需要将这些dll文件配置到指定目录里。异常解读:在java.library.path路径中未找到WeWorkFinanceSdk。现在有文件了,这个文件应该放在哪里?

2024-10-17 11:02:48 725 1

原创 FileNotFoundException: XXX (系统找不到指定的文件。)

1. 首先确定文件是否存在2. 其次相对路径是由基准的,是基于当前运行启动所在的模块的根目录去相对的。

2024-08-21 12:00:58 590

原创 rocketmq实现限流

公司邮件服务token有 分钟内超200封的熔断机制,当前token被熔断后,系统发邮件操作会被忽略,所以邮件服务也没有重试操作人工发现token被熔断后,需要联系邮件群中值班人,将token恢复分货业务依赖邮件来查看分货通知以及结果,并且分货层层依赖,如果不能及时收到邮件会影响业务的分货时效等,所以通过三个方面去解决这个问题。

2024-07-08 17:03:14 703 1

原创 RocketMQ 订阅组订阅一致性

消费组消费消息显示tag不匹配,但检查配置是一样的tag消费端配置。

2024-03-20 14:09:48 322

原创 git Update failed cannot lock ref

去该项目下的.git文件里找到报错文件,本例中即为:.git/refs/tags/pre-RELEASE-PRE-20230817-03。删除该文件,重新pull,pull成功问题解决。百度了很多方案,过滤出了有效方案。

2023-08-22 09:52:29 1111 1

原创 Could not resolve placeholder

编译后的target包下的配置文件名称是否跟启动类的环境一致(本次栽到这块了,耗费了两个小时,看源码,百度等等,坑已踩)1、检查编译后的target包里是否有该配置所在的文件。本质原因:项目启动未扫描到该配置,一般来说是配置不对。如果不在就clear,重新编译启动再去检查。2、检查启动的环境是否匹配。

2023-07-25 16:56:52 9197 1

原创 rocketmq客户端日志过大造成磁盘使用率占用过高

查看自定义客户端日志配置,分为两步第一步,配置rocketmq.client.logUseSlf4j=true启动参数 添加: -Drocketmq.client.logUseSlf4j=true 【推荐】或者启动类添加:System.setProperty("rocketmq.client.logUseSlf4j","true")第二步,配置logback日志配置检查项目中的配置第一步,配置在application.properties第二步,配置在logback.xml。

2023-07-04 11:23:50 4051 1

原创 @Validated+循环依赖报错分析解决

创建名为“myZmTest1”的bean时出错:名为“myZmTest1”的bean已作为循环引用的一部分注入到原始版本的其他bean[myZmTest2]中,但最终已被包装。这意味着所述其他bean不使用bean的最终版本大家都知道虽然在开发过程中,不建议出现循环依赖,但是Spring也做了兜底,提供了三级缓存用来解决循环依赖,但为什么循环依赖的类加了参数校验@Validated注解就解决不了了?

2023-01-09 15:04:10 2573

原创 CommunicationsException: Communications link failure

SQL自身问题场景曾解决过这种情况,发现是表的数据量过大、SQL未命中索引且查询筛选数据过多,导致SQL超时该情况问题解决:优化SQL,分批次查询系统资源不足场景也遇到过该情况,SQL分析发现,是非常简单的查询,执行仅需要毫秒级别,可以判断去与SQL本身无关。就去查看MySQL监控,发现报错时间段慢查询速率达到了峰值,mysql流量突增

2022-10-10 14:47:18 1681

原创 docker启动tomcat容器实例,浏览器访问失败

docker上使用tomcat镜像运行容器实例,在xshell上执行curl localhost:8080可以获取到tomcat页面信息,但是在页面输入ip+8080无法访问。每次重启Hyper-V管理器,再启动虚拟机后ip地址都会变化,优先解决了这个问题。因为终端上可以访问到,那么排除webapp下无文件的原因,可以判定为ip问题。2、设置自己的虚拟机,应用新建的虚拟交换机。

2022-09-30 14:47:32 1976

原创 分布式事务管理Atomikos

Atomikos是一个非常流行的开源事务管理器,并且可以嵌入到你的Spring Boot应用中。Tomcat应用服务器没有实现JTA规范,当使用Tomcat作为应用服务器的时候,需要使用第三方的事务管理器类来作为全局的事务管理器,而Atomikos框架就是这个作用,将事务管理整合到应用中,而不依赖于application server。

2022-09-15 17:53:07 5210

原创 电脑性能参数了解

目录1、处理器CPU核心数线程数基础频率(主频)加速频率(睿频)2、显卡1、处理器CPU核心数硬件上的真实对象核心数是指处理器主频提升上已力不从心,Intel和AMD在不用进行大规模开发的情况下,将现有产品发展成为理论性能更为强大的多核心处理器系统。单个cpu效率已经遇到瓶颈了,那么就换个角度,在数量上考虑

2022-09-06 17:31:30 8195

原创 NIO通信实现

目录 基于channel通道实现通信 服务端代码 客户端代码 通信结果 Channel通道与流的区别 基于Selector选择器服务端实现通信 服务端代码 通信结果

2022-08-18 17:06:40 727

原创 Guava Cache本地缓存

目录LoadingCache是什么?怎么使用?缓存过期机制Guava cache实现LRU回收机制缓存三大问题Guava cache与分布式缓存的区别?

2022-08-05 10:02:52 7724

原创 Java8 Stream使用整理

3、获取name+sex(唯一键)对应的所有信息List=>Map5、获取name+sex(唯一键)对应的IDList=>Map1、获取每个人所学的科目列表List=>MapMap转Map

2022-07-29 14:32:19 527

原创 Java8 Optional使用整理

get获取Optional的value,为null则抛出NoSuchElementException异常of将value封装为Optional对象,为null则抛出NullPointerException异常empty返回空Optional对象ofNullable将value封装为Optional对象,为null则将返回空对象。

2022-07-28 17:38:34 377

原创 Arthas watch命令使用

格式:watch 类全限定名 方法名 观察表达式 条件表达式可以观察到的信息:方法入参、方法返回值、抛出的异常信息、调用方法的对象观察表达式:默认{params, target, returnObj}观察事件点-b 方法调用前(观察入参时,方法中可能会有修改入参的操作)-s 方法返回后-e 方法抛出异常后jad demo.MathGame查看源代码watch demo.MathGame primeFactorsx 默认为1,等价于 watch demo.MathGame primeFactors -x 1观

2022-06-16 14:25:28 20764

原创 EasyExcel 单元格替换

目录场景:Java写excel需要将查不到的数据字段用“-”代替问题:字段为int类型,但是该字段需要接收“-”思路1:修改字段类型为String,组装list时赋值为“-”(❌)思路2:字段类型必须得是int类型,先写入,使用CellWriteHandler#afterCellDispos去替换(✔)实体类信息easyexcel将实体类list写入excel实现问题:字段为int类型,但是该字段需要接收“-”由于Java是强类型语言,只能是改为String类型。写入excel结果如下可以看

2022-06-15 14:45:34 2700

原创 接口入参过大报错404

目录报错详情背景介绍问题原因定位问题解决报错详情正常使用的接口突然报错404了背景介绍本接口是一个确认分货数据的接口,与第三方是以base64加密的excel文件流交互的问题原因定位由于本次文件大小达到了4M,所以怀疑是入参过大导致,所以入参设置为空调用,调用正常所以可以得出是因为post请求入参过大,大于默认大小问题解决查找post请求限制大小相关文档,可见默认大小为2M,修改tomcat默认post请求大小配置即可,可见SpringBoot pos

2022-05-17 10:28:53 1120

原创 no suitable HttpMessageConverter found for response type [XXX]

目录1、背景2、报错详情3、代码定位4、问题解决1、背景使用Spring的RestTemplate进行网络请求,RestTemplate把数据从 HttpResponse 转换成Object的时候找不到合适的HttpMessageConverter2、报错详情Could not extract response: no suitable HttpMessageConverter found for response type [XXX] and content type [t

2022-04-21 15:57:59 11147 1

原创 Arthas使用本地

下载:下载 — Arthas 3.5.6 文档入门官方文档 :快速入门 — Arthas 3.5.6 文档按照入门简单示例操作(本地)1、启动官方示例math-game2、启动arthas我们现在要选择第二个Java进程,报错了问题解决:尝试使用不同的telnet端口:java -jar arthas-boot.jar --telnet-port 17824--http-port -1启动成功3、查看dashboard,可以看到main函数的线程....

2022-03-25 16:19:53 2159

原创 tk.mybatis踩坑

1、千万别使用 insert 或者 insertUseGeneratedKeys特点:毫无扩展性1)如果后续本表新增字段,那么这块必须也要更新。2)如果其他业务也是用本表,新增了字段。我们不知情,那么必定会有线上报错目前在用insertSelective...

2022-03-15 19:42:07 792

原创 SQL组合查询:(字段1, 字段2) in ((v1, v2),(v3, v4))

目录优化前优化后场景:数据库表两个字段组成唯一键,需要批量用唯一键查询记录UNIQUE KEY `uk_channel_org` (`channel`, `org`),优化前for (ChannelOrg channelOrg : channelOrgList) { //循环中查询数据库 ChannelOrgLevelConfigDO config = channelOrgLevelConfigService.getNode(channelOrg); //

2022-03-15 17:26:09 2579

原创 mysql无限层表设计方案分析

目录需求接口思路1:一个表,记录父ID思路2:闭包表(空间换时间)思路3:存储路径三种方式对比本文所用的层级关系图需求接口1、获取子级/所有子级列表/所有子级树2、获取父级3、增删改思路1:记录父IDCREATE TABLE `XXX` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `parent_id` bigint(20) unsigned NOT NU.

2022-02-17 19:12:28 2084

原创 mysql数据类型解析

目录1、int(10)与int(11)的区别?结论1:在unsigned修饰下int缺省M默认为10结论2:int(M)的M只是显示的长度,存储数值不足M位的会补0结论3:int缺省M默认为11,且不同M存储值相同结论4:M与存储占用内存无关1、int(10)与int(11)的区别?int占用4个字节,32位int(M),M默认为11,M只是展示的长度,与存储占用的多少无关例如:int(4),存储21,不足4位,查询会显示为0021若建表语句加上ZEROFILL,会在.

2022-02-16 18:15:28 940

原创 秒数设置为0的date,写入mysql的timestamp会出现部分秒数为1的情况

目录情况描述解决方案原因解析节点1:给到MyBatis的insertUseGeneratedKeys的参数节点2:MyBatis将java.util.Date转为java.sql.Timestamp节点3:最终执行的sql如下节点4:mysql测试结论情况描述1、数据库表字段类型为timestamp`XXX_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'XXX',2、mybati..

2022-01-05 14:37:36 1407

原创 EasyExcel常见场景

目录业务场景实现1:生成excel并用base64加密得到加密串实现2:去掉excel表头默认格式实现3:excel设置自定义列宽实现4:excel文件中有一列需要设置公式,G列 = F列 - H列 - I列实现5:G列需要设置,当数值 < 0 时 字体显示为红色总在本次涉及到excel开发中,使用了之前了解过的com.alibaba.easyexcel,本篇记录下一些用法业务场景1、与Excel方交互,需要将结果list实体类 转成 excel 的形式,再用b

2021-12-27 17:31:09 1973

原创 业务异常捕获为什么要使用Throwable?

Throwable异常树受查异常(编译异常):在编译时被强制检查的异常,必须处理,否则程序编译不通过。子类1:Error(错误)是程序无法处理的错误。指示合理的应用程序不应尝试捕获的严重问题。这些错误是不应该发生的异常情况。 也就是说,出于编译时检查异常的目的,Error 及其子类被视为未经检查的异常。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineErr

2021-12-22 19:55:50 2183

原创 excel写为字节流使用base64加解密

业务场景:与excel方交互,需要将list实体类生成一个excel文件,然后用base64加密成字符串交互。并且excel方修改完后,会同样生成base64加密的字符串传回来,我再根据此字符串解析到excel信息将实体类list生成excel并使用base64加密无需生成excel文件,将内容写入到字节流中即可,字节流再去使用base64加密方式1:使用easyExcel得到字节流依赖包<dependency> <groupId>com.alibaba

2021-12-21 19:04:04 2601

原创 XA事务回滚处理Lock wait timeout exceeded

目录自测过程中,修改指定的一条数据报错该条数据被锁定的可能原因1、其他sql也在修改该条数据2、未提交的事务里对该条数据进行了修改解决:回滚XA事务自测过程中,修改指定的一条数据报错SQL: update XXX set status_id = ?, about_id = ? where id in ( 109);报错详情### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MyS.

2021-12-21 15:29:26 2261

原创 使用dom4j解析XML

目录1、依赖dom4j包2、 读取xml文件获取到文件输入流3、使用dom4j解析输入流得到document4、获取document标签元素并封装扩展:XPath使用dom4j解析xml文件流程例如,解析mysql配置文件sqlConfig.xml<configuration><!--xml根标签--> <dataSource> <property name="driverClass" value="com

2021-12-03 17:10:19 1452

原创 MySQL 主键性能解析

默认存储引擎InnoDBInnoDB基本知识在 InnoDB 中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。InnoDB 使用了 B+ 树索引模型,整张表的数据是存储在主键索引对应的B+树中的InnoDB 可操作的最小粒度是页(16k),页加载进内存后才会通过扫描页来获取行/记录。B+树介绍在InnoDB中,主键为聚簇索引:B+ 树的叶子节点中直接存储数据行除了主键,其余都是辅助索引:B+ 树的叶子节点存储主键值。如果不是覆盖索引,需要回表..

2021-11-17 17:28:50 2581

原创 包装类型与基本类型的抉择?

目录本质区别1、默认值2、泛型支持3、内存占用4、性能结论本质区别例:Integer与int1、默认值包装类型默认值为null,基本类型默认值为0包装类可以接收null2、泛型支持包装类型可以支持泛型,例如:List<Integer> list基本类型不支持3、内存占用包装类型,new一个对象,真实数据存放在堆中,栈中存放堆地址基本类型直接存储在栈中4、性能基本类型无需拆装箱包装类型,1.5以后有自动拆装箱以

2021-11-05 16:37:20 310

空空如也

空空如也

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

TA关注的人

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