
스프링 부트 버전 : 3.2.0
언어 : Java
의존성 관리 도구 : gradle (groovy)
spring web
lombok
resilience4j
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.0'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2023.0.0")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
tasks.named('test') {
useJUnitPlatform()
}
추가 모듈 이것 추가해야 어노테이션 기반으로 resilience4j 사용가능
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-aop'
implementation 'io.github.resilience4j:resilience4j-all'
}
@Controller
@ResponseBody
public class MainController {
private Rest1Comp rest1Comp;
@Autowired
public MainController(Rest1Comp rest1Comp) {
this.rest1Comp = rest1Comp;
}
@GetMapping("/")
public String mainP() {
return rest1Comp.restTemplate1().getForObject("/data", String.class);
}
}
@Component
public class Rest1Comp {
@Bean
public RestTemplate restTemplate1() {
return new RestTemplateBuilder().rootUri("http://localhost:9000")
.build();
}
Service1 API 서버 구축
Spring Boot 3.2.0
@Controller
@ResponseBody
public class DataController {
@GetMapping("/data")
public String dataP() {
String nowTime = String.valueOf(LocalDateTime.now());
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return nowTime;
}
}
server.port=9000이렇게 호출서버쪽에서 10초를 기다린후 응답이 넘어오도록 세팅했고
resilience4j 에서도 호출서버쪽의 api를 사용할수 있도록 셋팅완료 했다
https://www.youtube.com/watch?v=f7-t8o9NbFI&list=PLJkjrxxiBSFCAvgvqYaIFlSWYCfa1x4TQ&index=3
https://www.youtube.com/watch?v=mN8RtsKAaBI&list=PLJkjrxxiBSFCAvgvqYaIFlSWYCfa1x4TQ&index=5