>데이터 베이스 >MySQL 튜토리얼 >Hibernate 및 MySQL에서 Spring Boot 연결 풀 시간 초과를 해결하는 방법은 무엇입니까?

Hibernate 및 MySQL에서 Spring Boot 연결 풀 시간 초과를 해결하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-18 01:32:10873검색

How to Fix Spring Boot Connection Pool Timeouts with Hibernate and MySQL?

Hibernate 및 MySQL을 사용하는 Spring 부팅의 연결 풀 시간 초과

Spring Boot, JPA-Hibernate 및 MySQL을 사용할 때 사용자에게 시간 초과가 발생할 수 있습니다. "CommunicationsException" 문제를 나타내는 오류. 이 문제를 해결하기 위해 권장되는 접근 방식은 연결 유효성 검사를 활성화하고 풀에서 허용되는 최대 연결 수를 지정하는 것입니다.

연결 풀 속성 구성:

효과적으로 다음을 수행할 수 있습니다. application.properties에서 다음 속성을 설정하여 연결 풀을 구성하세요.

  • spring.datasource.max-active: 최대 개수 활성 연결(기본값: 8)
  • spring.datasource.initial-size: 초기 연결 수(기본값: 0)
  • spring.datasource.max-idle: 최대 유휴 연결 수( 기본값: 8)
  • spring.datasource.min-idle: 유휴 연결의 최소 수(기본값: 0)
  • spring.datasource.time-between-eviction-runs-millis: 연결 유효성 검사 사이의 시간(기본값: 5000ms)
  • spring.datasource.min-evictable-idle-time -millis: 연결이 제거되기 전 최소 유휴 시간(기본값: 60000) ms)

연결 확인 활성화:

연결을 주기적으로 확인하고 끊어진 연결을 풀에서 제거하려면 다음 속성을 설정합니다.

  • spring.datasource.test-while-idle: 유휴 상태인 동안 연결 유효성을 검사합니다(기본값: false)
  • spring.datasource.test-on-borrow: 풀에서 연결을 빌리기 전에 연결 유효성을 검사합니다(기본값: false)
  • spring.datasource.validation-query: 수행할 SQL 쿼리 연결 유효성 검사(기본값: SELECT 1)

대체 접근 방식( 권장):

권장되지는 않지만 JDBC URL에 autoReconnect=true를 지정하여 시간 초과가 발생할 때 자동으로 다시 연결할 수도 있습니다.

spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true

그러나 이 접근 방식은 다음과 같은 결과를 초래할 수 있습니다. 재연결이 발생할 때 활성 트랜잭션 중에 문제가 발생합니다.

이러한 설정을 구현하면 다음과 같은 경우 연결이 적극적으로 테스트되고 제거되도록 할 수 있습니다. 유휴 상태로 유지하여 시간 초과 오류를 방지하고 데이터베이스에 대한 애플리케이션 연결의 안정성을 유지합니다.

위 내용은 Hibernate 및 MySQL에서 Spring Boot 연결 풀 시간 초과를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.