> 데이터 베이스 > MySQL 튜토리얼 > Spring Boot 데이터베이스 연결 시간 초과: 연결 풀을 효과적으로 구성하는 방법은 무엇입니까?

Spring Boot 데이터베이스 연결 시간 초과: 연결 풀을 효과적으로 구성하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-10 01:42:10
원래의
191명이 탐색했습니다.

Spring Boot Database Connection Timeout: How to Effectively Configure Connection Pools?

데이터베이스의 Spring Boot 연결 시간 초과 문제

문제 요약

Spring을 활용하는 Spring Boot 애플리케이션 MySQL을 사용한 데이터 JPA 및 Hibernate는 연결 시간 초과 오류가 발생할 수 있습니다. 특히 "CommunicationsException: 서버에서 성공적으로 수신된 마지막 패킷은 >4<24밀리초 전이었습니다."라는 오류 메시지는 애플리케이션과 데이터베이스 간의 연결 시간이 초과되었음을 나타냅니다.

가능한 해결 방법 autoReconnect 사용

spring.datasource.testonborrow=true를 사용하는 동안 및 spring.datasource.validationQuery=SELECT 1은 실행 가능한 솔루션이지만 권장되지 않습니다. 더 나은 접근 방식은 연결 풀을 적절하게 구성하는 것입니다.

권장 해결 방법: 연결 풀 구성

  1. 최대 연결 수를 설정합니다. 연결:

    • spring.datasource.max-active=10
    • 풀에서 허용되는 최대 동시 연결 수를 지정합니다.
  2. 초기 연결 및 유휴 연결 설정 제한:

    • spring.datasource.initial-size=5
    • 풀의 초기 연결 수를 설정합니다.
    • spring.datasource. max-idle=5
    • 이는 최대 유휴 연결 수를 설정합니다. pool.
    • spring.datasource.min-idle=1
    • 풀의 최소 유휴 연결 수를 설정합니다.
  3. 연결 활성화 유효성 검사:

    • spring.datasource.test-while-idle=true
    • 이것은 연결이 유휴 상태인 동안 연결의 유효성을 검사합니다.
    • spring.datasource.test -on-borrow=true
    • 이것은 연결이 검색될 때 연결의 유효성을 검사합니다. pool.
    • spring.datasource.validation-query=SELECT 1
    • 실행할 유효성 검사 쿼리를 설정합니다.
  4. 검증 기간 및 유휴 설정 시간 초과:

    • spring.datasource.time-between-eviction-runs-millis=5000
    • 이는 유효성 검사를 실행할 빈도를 지정합니다. query.
    • spring.datasource.min-evictable-idle-time-millis=60000
    • 제거 가능한 것으로 간주되기 전 유휴 연결의 최대 기간을 설정합니다.

이러한 방식으로 연결 풀을 구성하면 연결이 주기적으로 검증되고 유휴 연결이 해제됩니다. 정기적으로 제거되고 필요한 경우 새 연결이 확보됩니다. Spring Boot는 자동으로 재연결 프로세스를 처리하여 연결이 항상 사용 가능하도록 보장합니다.

위 내용은 Spring Boot 데이터베이스 연결 시간 초과: 연결 풀을 효과적으로 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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