IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> postgresql+shardingsphere导致application启动速度慢 -> 正文阅读

[大数据]postgresql+shardingsphere导致application启动速度慢

查看启动日志,发现数据源初始化时,postgresql数据源特别慢,耗时30秒~2分钟,Debug发现慢在loadDefaultTables方法。

Mysql数据源,getAllTableNames()无返回值,而postgresql数据源返回了200多个表名,随着表的增加,postgresql数据源的初始化将会越来越慢。

由于项目只访问postgresql中的几个分表,可考虑只加载分表,不加载其他表,即不进入下面这段代码:

if (actualDefaultDataSourceName.isPresent()) {
?? ?Iterator var4 = this.getAllTableNames((String)actualDefaultDataSourceName.get()).iterator();

?? ?while(var4.hasNext()) {
?? ??? ?String each = (String)var4.next();
?? ??? ?result.put(each, this.tableMetaDataLoader.load(each, shardingRule));
?? ?}
}

故考虑重写ShardingRule的findActualDefaultDataSourceName()方法,使返回值不是Present。

重写代码如下:

public class ShardingRuleLocal extends ShardingRule {

    public ShardingRuleLocal(ShardingRuleConfiguration shardingRuleConfig, Collection<String> dataSourceNames) {
        super(shardingRuleConfig, dataSourceNames);
    }

    @Override
    public Optional<String> findActualDefaultDataSourceName() {
        return Optional.absent();
    }
}

建数据源:

new ShardingDataSource(dataSources, new ShardingRuleLocal(shardingRuleConfig, dataSources.keySet()), new ConcurrentHashMap(), properties)

再次启动后加载postgresql数据源的速度提高到了2s。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:48:46  更:2022-05-13 11:50:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 5:35:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码