이 기사의 첫 번째 부분에서는 Tomcat를 Undertow로 대체하여 애플리케이션 성능을 향상시키는 방법을 배웠습니다. 고성능 웹 서버는 데이터 압축을 활성화하고 구성하는 것 외에도 네트워크를 통해 이동하는 HTTP 응답의 크기를 줄입니다.
이제 지속성 부분에서 Spring Boot 애플리케이션 성능을 향상시키는 방법에 대해 이야기하겠습니다. 하지만 먼저 JPA, Hibernate 및 Hikari.
JPA 또는 Java Persistence API는 나중에 Jakarta Persistence로 이름이 바뀌었습니다. 데이터 지속성 프레임워크용 인터페이스
JPA 사양은 공급업체별 매핑 구현에 의존하지 않고 내부적으로 객체 관계형 매핑을 정의합니다.
최대 절전 모드Hibernate는 JPA 사양을 구체적으로 구현하는 ORM 프레임워크 중 하나입니다. 즉, 이 사양이 지속, 제거하는 방법의 필요성을 설명하는 경우, 업데이트 및 데이터 가져오기, 실제로 이러한 동작을 구축할 사람은 최대 절전 모드와 EclipseLink입니다. 는 또 다른 ORM.입니다.
히카리Hikari는 연결 풀링 프레임워크로, 데이터베이스에 대한 연결을 관리하고 재사용할 수 있도록 열어 두는 역할을 합니다. 즉, 이는 향후 요청을 위한 연결의 캐시로서, 데이터베이스에 더 빠르게 액세스하고 생성될 새 연결 수를 줄입니다.
Hikari, JPA 및 Hibernate 구성application.yml 사용:
spring: hikari: auto-commit: false connection-timeout: 250 max-lifetime: 600000 maximum-pool-size: 20 minimum-idle: 10 pool-name: master jpa: open-in-view: false show-sql: true hibernate: ddl-auto: none properties: hibernate.connection.provider_disables_autocommit: true hibernate.generate_statistics: trueapplication.properties 사용:
spring: hikari: auto-commit: false connection-timeout: 250 max-lifetime: 600000 maximum-pool-size: 20 minimum-idle: 10 pool-name: master jpa: open-in-view: false show-sql: true hibernate: ddl-auto: none properties: hibernate.connection.provider_disables_autocommit: true hibernate.generate_statistics: true이제 옵션에 대해 간략하게 요약해 보겠습니다.
히카리
연결 풀에서 반환된 모든 연결은 자동 커밋이 비활성화된 상태로 제공됩니다.
풀로부터의 연결을 기다리는 시간(밀리초). 클라이언트를 무한정 기다리기보다는 빠르게 실패하고 오류 메시지를 반환하도록 짧은 시간 제한을 설정하는 것이 좋습니다.
풀의 최대 크기로, 데이터베이스에 대한 최대 활성 연결 수를 결정합니다. 풀이 이 제한에 도달하고 유휴 연결이 없는 경우 getConnection()에 대한 호출은 실패하기 전에 최대 connectionTimeout밀리초 동안 차단됩니다.
와 동일
에 대한 사용자 정의 이름이며 주로 레지스트리 관리 콘솔과 JMX에 표시되어 를 식별합니다. 풀 및 해당 구성.
(Open Session In View)가 활성화되면 요청 전반에 걸쳐 세션이 유지됩니다. @Transactional 주석 없이. 세션은 요청이 끝날 때까지 데이터베이스에 대한 연결을 유지하므로 애플리케이션 응답 부족과 같은 성능 문제가 발생할 수 있습니다.
와 관련하여 Hibernate의 동작을 구성합니다. 다음 값을 가질 수 있습니다:
없음: 아무것도 하지 않습니다. 우리는 은행의 스키마를 수동으로 관리합니다.
Hibernate에 공급자의 자동 커밋을 비활성화했음을 알립니다. (PostgreSQL, MySQL 등). Hibernate는 자동 커밋이 활성화되었는지 여부를 알기 위해 풀에서 연결을 얻어야 하기 때문에 이는 성능에 영향을 미칩니다. , 그가 하는 모든 거래에 대해.
및 풀 크기와 같은 Hikari 설정입니다. , JPA 및 Hibernate는 다음과 같습니다. OSIV (보기에서 세션 열기) 공급자의 자동 커밋이 비활성화되었음을 알립니다. 다음 부분에서는
JVM(Java Virtual Machine)에서 리소스를 절약하기 위해 예외와 이를 구성하는 방법에 대해 설명합니다. 참조:
https://en.wikipedia.org/wiki/Jakarta_Persistence
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3