2021-02-25 多线程事务回滚方法(一) 多线程事务回滚方法(一) 介绍1.最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。2.在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。案例演示下面是事务不成功案例演示。线程池配置package com.mry.rollback.config; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** * 线程池配置 */ public class Executor... 王子 2021-02-25 springboot,多线程 361 阅读 0 评论 2021年02月25日 361 阅读 0 评论
2020-09-07 Elasticsearch 如何实现查询/聚合不区分大小写? Elasticsearch 如何实现查询/聚合不区分大小写? 1、实战问题最近有多个关于区分大小写的问题:问题1:ES查询和聚合怎么设置不区分大小写呢?问题2:ES7.6 如何实现模糊查询不区分大小写? 主要是如何进行分词和mapping的一些设置来实现这个效果,自己也尝试过对setting 和 mapping字段进行设置,都是报错比较着急,类似的问题,既然有很多同学问到,那么咱们就有必要梳理出完整的思路和方案。这或许是铭毅天下公众号的使命所在。这个问题不复杂,所以本文会言简意赅,直击要害!2、问题拆解2.1 拆解一:如果默认分词方式,能区分大小写的吗?是的,默认分词器是Standard 标准分词器,是不区分大小写的。官方文档原理部分:如下的两张图很直观的说明了:标准分词器的 Token filters 核心组成是:Lower Case Token Filter。什么意思呢?大写的英文字符会转换成小写。2.2 拆解二:实践 Demo 验证DELETE test_003 PUT test_003 { "mappings": { "properties": { "titl... 王子 2020-09-07 Elasticsearch 308 阅读 0 评论 2020年09月07日 308 阅读 0 评论
2020-09-01 利用Arthas排查接口慢的情况 利用Arthas排查接口慢的情况 工作中遇到这么一个所以就准备去排查接口的调用情况。经过了解发现Arthas可以帮助我排查接口缓慢的情况; 王子 2020-09-01 Arthas 467 阅读 0 评论 2020年09月01日 467 阅读 0 评论
2020-01-20 深入排查java进程消耗CPU或内存过高问题 深入排查java进程消耗CPU或内存过高问题 启动成功后如下图所示:上图界面可以看到检测到了16个java进程,其中一个不可用;默认当前会话选中的是第一个进程:3968如果需要切换到其他进程怎么办呢? 王子 2020-01-20 Arthas 281 阅读 0 评论 2020年01月20日 281 阅读 0 评论
2017-12-27 Intellij IDEA运行报Command line is too long解法 Intellij IDEA运行报Command line is too long解法 IEDA运行报错内容:Error running 'ServiceStarter': Command line is too long. Shorten command line for ServiceStarter or also for Application default configuration. 王子 2017-12-27 idea 263 阅读 0 评论 2017年12月27日 263 阅读 0 评论