본문 바로가기
MySql

MySQL HikariCP 연결 풀은 즉시 100 개의 연결을 생성합니다.

by 베이스 공부 2020. 11. 27.
반응형

HikariCP 연결 풀을 사용하는 코드가 있습니다.

config.setMaximumPoolSize(100);
config.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
config.addDataSourceProperty("serverName", hostname);
config.addDataSourceProperty("port", portnumber);
config.addDataSourceProperty("databaseName", dbname);
config.addDataSourceProperty("user", username);
config.addDataSourceProperty("password", password);
config.setConnectionTimeout(30000);
config.setInitializationFailFast(false);
pooledDataSource = new HikariDataSource(config);

"Show Processlist"명령을 실행하여 mysql에서 연결을 모니터링하고 100 개의 연결이 한 줄에 생성 된 것을 확인합니다.

pooledDataSource = new HikariDataSource(config);

... 실행됩니다. 나는 이것이 일어나지 않을 것이라고 확신합니다. 나중에 pooledDataSource.getConnection ()을 수행 할 때 연결을 만들어야합니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까? 왜 즉시 100 개의 연결을 생성합니까 ??

 

해결 방법

 

기본적으로 HikariCP는 고정 크기 풀로 실행됩니다. minimumIdle 을 설정해야합니다. 그게 다야.

minimumIdle 에 대한 문서에서 :

이 속성은 최소 유휴 연결 수를 제어합니다. HikariCP tries to maintain in the pool. If the idle connections dip below this value, HikariCP will make a best effort to add additional connections quickly and efficiently. However, for maximum performance and responsiveness to spike demands, we recommend not setting this value and instead allowing HikariCP to act as a fixed size connection 풀. 기본값 : maximumPoolSize와 동일

 

참조 페이지 https://stackoverflow.com/questions/27396725

 

 

반응형

댓글