File tree Expand file tree Collapse file tree
pg-simulator/src/main/resources Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,30 +11,25 @@ dependencies {
1111 implementation(" org.springframework.boot:spring-boot-starter-actuator" )
1212 implementation(" org.springdoc:springdoc-openapi-starter-webmvc-ui:${project.properties[" springDocOpenApiVersion" ]} " )
1313
14- // querydsl
15- annotationProcessor(" com.querydsl:querydsl-apt::jakarta" )
16- annotationProcessor(" jakarta.persistence:jakarta.persistence-api" )
17- annotationProcessor(" jakarta.annotation:jakarta.annotation-api" )
18-
19- // test-fixtures
20- testImplementation(testFixtures(project(" :modules:jpa" )))
21- testImplementation(testFixtures(project(" :modules:redis" )))
22-
2314 // Resilience4j (Spring Boot 3.x 기준)
24- implementation(" io.github.resilience4j:resilience4j-spring-boot3:2.2.0 " )
15+ implementation(" io.github.resilience4j:resilience4j-spring-boot3" )
2516
2617 // AOP
2718 implementation(" org.springframework.boot:spring-boot-starter-aop" )
2819
29- // actuator
30- implementation(" org.springframework.boot:spring-boot-starter-actuator" )
31-
3220 // Micrometer Prometheus
3321 implementation(" io.micrometer:micrometer-registry-prometheus" )
3422
3523 // Spring Cloud OpenFeign
3624 implementation(" org.springframework.cloud:spring-cloud-starter-openfeign" )
3725
38- // Spring Cloud CircuitBreaker
39- implementation(" org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j" )
26+
27+ // querydsl
28+ annotationProcessor(" com.querydsl:querydsl-apt::jakarta" )
29+ annotationProcessor(" jakarta.persistence:jakarta.persistence-api" )
30+ annotationProcessor(" jakarta.annotation:jakarta.annotation-api" )
31+
32+ // test-fixtures
33+ testImplementation(testFixtures(project(" :modules:jpa" )))
34+ testImplementation(testFixtures(project(" :modules:redis" )))
4035}
Original file line number Diff line number Diff line change @@ -23,29 +23,44 @@ spring:
2323 - redis.yml
2424 - logging.yml
2525 - monitoring.yml
26+ cloud :
27+ openfeign :
28+ client :
29+ config :
30+ default :
31+ connectTimeout : 1000
32+ readTimeout : 1000
2633
2734resilience4j :
28- # Retry
2935 retry :
3036 instances :
31- pgRetry :
32- max-attempts : 3
33- wait-duration : 1000ms
37+ pg-client :
38+ max-attempts : 2 # 1번만 재시도 (총 2회)
39+ wait-duration : 500ms
3440 retry-exceptions :
3541 - java.io.IOException
36- - java.util.concurrent.TimeoutException
37- - java.net.ConnectException
42+ - java.net.SocketTimeoutException
43+ - feign.RetryableException
44+ # 비즈니스 로직 에러(400 등)는 재시도 하지 않음
45+ ignore-exceptions :
46+ - com.loopers.support.error.CoreException
47+ - feign.FeignException.BadRequest
48+ - feign.FeignException.NotFound
3849
39- # CircuitBreaker
4050 circuitbreaker :
4151 configs :
4252 default :
4353 register-health-indicator : true
4454 instances :
45- simpleCircuitBreakerConfig :
55+ pg-client :
4656 sliding-window-type : COUNT_BASED
4757 sliding-window-size : 10
48- failure-rate-threshold : 50
58+ minimum-number-of-calls : 5
59+ # 500ms 이상 걸리면 '슬로우 콜'로 간주 (빠른 차단)
60+ slow-call-duration-threshold : 500ms
61+ slow-call-rate-threshold : 50
62+
63+ failure-rate-threshold : 40
4964 wait-duration-in-open-state : 10s
5065 permitted-number-of-calls-in-half-open-state : 3
5166
Original file line number Diff line number Diff line change @@ -23,13 +23,6 @@ spring:
2323 - redis.yml
2424 - logging.yml
2525 - monitoring.yml
26- cloud :
27- openfeign :
28- client :
29- config :
30- default :
31- connectTimeout : 1000
32- readTimeout : 1000
3326
3427datasource :
3528 mysql-jpa :
Original file line number Diff line number Diff line change @@ -3,13 +3,15 @@ rootProject.name = "loopers-java-spring-template"
33include(
44 " :apps:commerce-api" ,
55 " :apps:commerce-streamer" ,
6+ " :apps:pg-simulator" ,
67 " :modules:jpa" ,
78 " :modules:redis" ,
89 " :modules:kafka" ,
10+
911 " :supports:jackson" ,
1012 " :supports:logging" ,
1113 " :supports:monitoring" ,
12- " :apps:pg-simulator " ,
14+
1315)
1416
1517// configurations
You can’t perform that action at this time.
0 commit comments