记录clickhouse 数据库连接超时问题处理

记录clickhouse 数据库连接超时问题处理

    • 记录clickhouse 数据库连接超时问题处理
      • 业务场景及问题描述
      • 问题分析
      • 解决办法

记录clickhouse 数据库连接超时问题处理

业务场景及问题描述

业务场景: 测试环境,clickhouse 大概有3个亿的数据。业务场景:综合报表,查询一周内的报表数据统计。需要绘制的图表有接近20个,采用ForkJoin 多线程处理。数据库连接:Hikari,默认最大数据库连接数为10,连接超时时间为10s。

问题描述: 在测试环境Clickhouse有其他业务需要使用的时候,打开综合报表页面,大概率会出现数据库连接超时情况,如下图所示:

image

问题分析

首先,默认最大数据库连接数为10,数量较小(主要),连接超时时间为10s,时长偏短(次要);

其次,采用ForkJoin多线程处理,一旦有多线程同时处理且单个线程处理时间过长时,就有可能会连接数超过10,且连接超时时间超过10s,就会抛出连接超时异常。

解决办法

  • 修改最大数据库连接数,maximum-pool-size: 1000,根据环境配置以及业务需求修改成稍大的值。
  • 修改连接超时时间,connection-timeout: 10000

增加最大数据库连接数就可以解决问题,连接超时时间不用修改也可以。

你可能感兴趣的:(clickhouse,数据库,clickhouse,java,运维)