开发目的:
提高百万级数据插入效率。
采取方案:
利用ThreadPoolTaskExecutor多线程批量插入。
采用技术:
-
springboot2.1.1
-
mybatisPlus3.0.6
-
swagger2.5.0
-
Lombok1.18.4
-
postgresql
-
ThreadPoolTaskExecutor
具体实现细节
application-dev.properties添加线程池配置信息
# 异步线程配置
# 配置核心线程数
async.executor.thread.core_pool_size = 30
# 配置最大线程数
async.executor.thread.max_pool_size = 30
# 配置队列大小
async.executor.thread.queue_capacity = 99988
# 配置线程池中的线程的名称前缀
async.executor.thread.name.prefix = async-importDB-
spring容器注入线程池bean对象
@Configuration
@EnableAsync
@Slf4j
public class ExecutorConfig {
@Value("${async.executor.thread.core_pool_size}")
private int corePoolSize;
@Value("${async.executor.thread.max_pool_size}")
private int maxPoolSize;
@Value("${async.executor.thread.queue_capacity}")
private int queueCapacity;
@Value("${async.executor.thread.name.prefix}")
private String namePrefix;
&

本文介绍了如何使用SpringBoot结合MybatisPlus和ThreadPoolTaskExecutor提升百万级数据插入的效率。通过配置异步线程池,创建线程业务类并实现批量插入,测试结果显示多线程插入耗时1.67分钟,相比单线程的5.75分钟显著提升。同时,检查了数据的完整性和避免了重复入库问题,验证了方案的有效性。

744

被折叠的 条评论
为什么被折叠?



