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,多线程 246 阅读 0 评论 2021年02月25日 246 阅读 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 220 阅读 0 评论 2020年09月07日 220 阅读 0 评论
2020-09-01 利用Arthas排查接口慢的情况 利用Arthas排查接口慢的情况 工作中遇到这么一个所以就准备去排查接口的调用情况。经过了解发现Arthas可以帮助我排查接口缓慢的情况; 王子 2020-09-01 Arthas 346 阅读 0 评论 2020年09月01日 346 阅读 0 评论
2020-08-31 MySQL 最佳实践:一次 InnoDB 死锁 Bug 排查 MySQL 最佳实践:一次 InnoDB 死锁 Bug 排查 背景同事一个关于 InnoDB 死锁的问题。在 MySQL 5.7 可以复现这个问题,MySQL 8.0.22 却无法复现,他询问其死锁的原因。经过一系列的排查,我后来发现是 InnoDB 内部实现的一个 Bug,目前这个 Bug 已经在 8.0.18 版本进行了修复,所以也可以通过 8.0.17 vs 8.0.18 来验证这个问题。 王子 2020-08-31 技术与技巧 206 阅读 0 评论 2020年08月31日 206 阅读 0 评论
2020-08-02 Java 日志规范,别瞎用 Java 日志规范,别瞎用 前言日志是快速定位问题的好帮手,是撕逼和甩锅的利器!打印好日志非常重要。今天我们来聊聊日志打印的 15 个好建议~ 王子 2020-08-02 技术与技巧 200 阅读 0 评论 2020年08月02日 200 阅读 0 评论