From f5ac548c0e3e4d612c7ae6b4631d8b8dd95f3f51 Mon Sep 17 00:00:00 2001 From: masonkimseoul <87306418+masonkimseoul@users.noreply.github.com> Date: Fri, 25 Oct 2024 00:01:07 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20HikariCP,=20Tomcat=20=ED=8A=9C=EB=8B=9D?= =?UTF-8?q?=20(#644)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 임시로 DEV CI/CD 스크립트 수정 * refactor: branch 경로 수정 및 docker에만 push 할 수 있도록 수정 * refactor: accept-count 200 * refactor: - accept-count 200, + hikari max pool size 50 * refactor: + hikari max pool size 200 * refactor: - hikari max pool size 30 * refactor: OfferingEntity의 Member에 FetchType.LAZY 설정 및 트랜잭션 추가 * refactor: getAllOffering에 트렌젝션 적용 * chore: actuator에 hikariCP 메트릭 지표 추가 * refactor: - hikari max pool size 20 * refactor: + hikari max pool size 40 * refactor: - hikari max pool size 30 * refactor: - hikari max pool size 20 * refactor: + hikari max pool size 50 * refactor: - hikari max pool size 4 * refactor: + hikari max pool size 40 * refactor: hikari max pool size default(10) * refactor: + hikari max pool size 8 * refactor: 테스트를 위해 공모 생성 시 알림 off * refactor: - tomcat max threads 3 * refactor: + tomcat max threads 100 * refactor: default로 회귀 * feat: HikariCP, Tomcat 설정 및 주석 해제 * refactor: metric 관련 설정 제거 --------- Co-authored-by: fromitive Co-authored-by: Choo --- .github/workflows/backend-dev-ci-cd.yml | 2 +- .../offering/repository/entity/OfferingEntity.java | 3 ++- .../zzang/chongdae/offering/service/OfferingService.java | 3 +++ backend/src/main/resources/application.yml | 9 +++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/backend-dev-ci-cd.yml b/.github/workflows/backend-dev-ci-cd.yml index 7b872a4ee..2ec670248 100644 --- a/.github/workflows/backend-dev-ci-cd.yml +++ b/.github/workflows/backend-dev-ci-cd.yml @@ -8,7 +8,7 @@ on: - ".github/workflows/backend-dev-ci-cd.yml" - "Dockerfile" # pull_request: - # branches: [ "develop" ] + # branches: [ "chongdae" ] # paths: # - "backend/**" # - ".github/workflows/backend-dev-ci-cd.yml" diff --git a/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java b/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java index 81b0aaf85..d3d9cf802 100644 --- a/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java +++ b/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java @@ -12,6 +12,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @@ -48,7 +49,7 @@ public class OfferingEntity extends BaseTimeEntity { private Long id; @NotNull - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) private MemberEntity member; @NotNull diff --git a/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java b/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java index c7994bc1e..2a6f682a3 100644 --- a/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java +++ b/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java @@ -54,6 +54,7 @@ public class OfferingService { private final OfferingFetcher offeringFetcher; private final Clock clock; + @Transactional(readOnly = true) public OfferingDetailResponse getOfferingDetail(Long offeringId, MemberEntity member) { OfferingEntity offering = offeringRepository.findById(offeringId) .orElseThrow(() -> new MarketException(OfferingErrorCode.NOT_FOUND)); @@ -72,6 +73,7 @@ public OfferingAllResponseItem getOffering(Long offeringId) { return new OfferingAllResponseItem(offering, offeringPrice); } + @Transactional(readOnly = true) public OfferingAllResponse getAllOffering(String filterName, String searchKeyword, Long lastId, Integer pageSize) { Pageable pageable = PageRequest.ofSize(pageSize); OfferingFilter filter = OfferingFilter.findByName(filterName); @@ -186,6 +188,7 @@ private void updateStatus(OfferingEntity offering) { // TODO : 도메인 분리 } @WriterDatabase + @Transactional public void deleteOffering(Long offeringId, MemberEntity member) { OfferingEntity offering = offeringRepository.findById(offeringId) .orElseThrow(() -> new MarketException(OfferingErrorCode.NOT_FOUND)); diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index afdf484dc..8ef0d9c9b 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -1,8 +1,17 @@ +server: + tomcat: + threads: + max: 35 + max-connections: 1024 + accept-count: 242 + spring: application: name: chongdae datasource: url: jdbc:h2:mem:database + hikari: + maximum-pool-size: 8 jpa: show-sql: true defer-datasource-initialization: true