hikaricp 3

[Spring] HikariCP 동작 방식

HikariCP의 성능과 효율성을 구체적으로 이해하고 이를 실제로 어떻게 구현했는지 파악해 보겠습니다.👀 HikariCP의 아키텍처HikariCP는 간단한 설정을 통해 고성능 커넥션 풀링을 지원합니다. 내부적으로는 커넥션을 풀에 저장해 놓고 필요할 때마다 커넥션을 효율적으로 관리합니다. 그 과정을 관리하는 주요 클래스들은 다음과 같습니다.HikariDataSourceHikariCP의 시작점으로 기본 설정을 통해 커넥션 풀을 초기화하고 관리합니다.HikariPool실제 커넥션 풀을 관리하며 커넥션을 빌려주고 반환하는 과정을 처리합니다.PoolEntry풀내의 각각 커넥션을 표현하는 클래스입니다.ProxyConnection데이터베이스와의 실제 커넥션을 감싸서 풀에 반환할 때 사용하는 래퍼 클래스입니다. Hi..

Backend/Spring 2024.09.29

[Spring] HikariCP란?

HikariCP는 자바 애플리케이션에서 데이터베이스와 연결을 효율적으로 관리하기 위한 JDBC Connection Pool 라이브러리입니다.HikariCP의 기본 개념과 왜 필요한지를 살펴보도록 하겠습니다. 😽 HikariCP란?데이터베이스와 애플리케이션을 연결하는 방법인 JDBC는 요청이 많아지면 비효율적일 수 있습니다!그 이유는 요청마다 새로운 커넥션을 열고 닫는 비용이 크기 때문입니다.이 문제를 해결하기 위해 커넥션 풀(Connetion Pool)이라는 개념이 생겼습니다. 미리 여러 개의 커넥션을 만들어두고, 필요할 때 그 커넥션을 사용한 후 반환하는 방식입니다.HikariCP는 그중에서도 성능이 뛰어난 커넥션 풀(Connetion Pool) 라이브러리입니다.  왜 HikariCP를 사용하는가?일..

Backend/Spring 2024.09.27

Failed to validate connection 해결하기

애플리케이션 실행 중에 warning 센트리 알림이 울리기 시작했다..😅오류 메시지의 원인 및 해결 방안을 알아보도록 하겠습니다.이 오류 메시지는 HikariCP에서 MySQL 데이터베이스를 연결을 관리하는 동안 발생한 문제를 나타냅니다.구체적으로 MySQL 연결이 이미 닫힌 상태에서 HikariCP가 해당 연결을 사용하려고 시도했기 때문에 발생한 문제입니다.이 문제는 주로 연결 수명이 다한 후에도 HikariCP가 그 연결을 풀에서 사용하려고 시도하는 경우 발생합니다. 원인연결 수명이 만료됨MySQL 서버에서 연결이 유효 기간이 지나서 닫히면, HikariCP는 해당 연결을 사용하려고 할 때 문제가 발생합니다. MySQL 서버의 wait_timeout 설정이 짧게 설정되어 있는 경우 이 문제가 발생할..

Backend/Spring 2024.08.17