[MSA Prepare] OpenFeign을 사용한 서비스간 호출

·2024년 6월 13일
0

MSA Prepare

목록 보기
16/21
post-thumbnail

What is Feign?

  • 인터페이스와 어노테이션 기반으로 REST 호출이 가능
  • Eureka등의 다른 기술들과 통합 가능
  • 서비스간 호출을 위해서 사용

단점 및 한계

  • Http2를 지원하지 않음
  • 공식적으로 Reactive 모델을 지원하지 않음

사용하기

dependencies

implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'

Application.java

@SpringBootApplication
@EnableFeignClients
public class ServiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(ServiceApplication.class, args);
	}

}
  • @EnableFeignClients 다음의 어노테이션의 추가가 필요하다.

Proxy interface

@FeignClient(name="restservice", url="localhost:8000")
public interface RestProxy {
    @GetMapping("/team")
    public NewTeam hello();
}
  • 다음과 같이 restservice의 서비스를 가져와서 사용할 수 있다.
  • Eureka를 적용하면 url을 사용하지 않아도 호출이 가능하다.

Use

@RestController
public class Controller {
    @Autowired
    private RestProxy restProxy;

    @GetMapping("/myteam")
    public NewTeam retrieveMyTeam() {
        NewTeam team = restProxy.hello();
        return team;
    }
}

profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보