> Java > java지도 시간 > 본문

JPA-Hibernate 및 MySQL을 사용하여 Spring 부팅 애플리케이션에서 연결 시간 초과를 방지하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-25 00:09:02
원래의
691명이 탐색했습니다.

How to Prevent Connection Timeouts in Spring Boot Applications Using JPA-Hibernate and MySQL?

Jpa-Hibernate 및 MySQL을 사용하는 Spring Boot의 연결 시간 초과

Spring Boot 애플리케이션은 종종 JPA-Hibernate 프레임워크를 활용하여 데이터베이스 상호 작용을 촉진합니다. 그러나 일반적으로 발생하는 문제는 지정된 시간 간격 이후에 연결이 실패하는 것입니다. 특히 MySQL을 기본 데이터베이스로 처리할 때 그렇습니다.

이러한 시나리오에서 애플리케이션 로그는 일반적으로 "마지막 패킷이 성공적으로 완료되었습니다"라는 오류 메시지를 표시합니다. X 밀리초 전에 서버에서 수신되었습니다...", 여기서 X는 서버에 구성된 대기 시간 초과 값을 초과합니다.

이 문제를 해결하기 위해 spring.datasource.testOnBorrow 사용을 포함한 여러 가지 접근 방식이 제안되었습니다. =true 및 spring.datasource.validationQuery 속성. 그러나 이러한 방법은 일반적으로 권장되지 않습니다.

권장 솔루션: 연결 유효성 검사 구현

선호되는 솔루션은 애플리케이션 수명 전체에 걸쳐 연결 유효성 검사를 구현하는 것입니다. 이는 다음 속성을 구성하여 수행할 수 있습니다.

  • spring.datasource.max-active: 풀에서 허용되는 최대 활성 연결을 지정합니다.
  • spring.datasource.initial-size : 풀에 생성할 초기 연결 수를 정의합니다.
  • spring.datasource.max-idle 및 spring.datasource.min-idle: 최소 및 최대 유휴 연결을 설정합니다.
  • spring .datasource.test-while-idle=true: 유휴 기간 동안 연결의 유효성을 검사합니다.
  • spring.datasource.test-on-borrow=true: 풀에서 연결을 검색할 때 연결의 유효성을 검사합니다.
  • spring.datasource.validation-query: 연결을 테스트하기 위한 유효성 검사 쿼리를 제공합니다.

이러한 설정을 사용하면 연결이 유휴 상태일 때 주기적으로 연결을 확인할 수 있으므로 풀에서 끊어진 연결을 감지하고 제거할 수 있습니다.

HikariCP의 자동 연결 유효성 검사

Spring Boot 2.x에서 HikariCP를 기본 연결 풀로 채택했기 때문에 JDBC 유효성 검사 메커니즘을 사용할 때 이제 연결 유효성 검사가 HikariCP에 의해 자동으로 수행됩니다.

따라서 검증을 활성화하고 연결 관리를 위한 적절한 구성을 제공함으로써 MySQL과 함께 JPA-Hibernate를 사용하는 Spring Boot 애플리케이션에서 연결 시간 초과 오류를 완화하고 안정적인 데이터베이스 상호 작용을 보장할 수 있습니다.

위 내용은 JPA-Hibernate 및 MySQL을 사용하여 Spring 부팅 애플리케이션에서 연결 시간 초과를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!