-
Spring Cloud Feign - 2. Feign을 사용하여 통신하기Spring Cloud/Spring Cloud Feign 2024. 1. 29. 17:37728x90
서버 2개를 띄우고 한쪽 서버에서 반대쪽 서버를 호출하여 값을 가져오도록 해보려 한다.
멀티모듈로 구성했습니다.
멀티모듈 관련해서는 이 글을 봐주세요!
- fegin 을 통하여 다른 서버에 요청할 프로젝트를 만든다.
- 요청받을 서버를 만들었다.
- http 통신이기 때문에 url 주소만 있으면 되므로 서버는 Feign이 필요가없다.
feignClientApplication - Feign-client 모듈에서 FeignClient를 사용한다고 명시한다.
main-server application.yml - 2개의 서버를 띄울것이기 때문에 main-server 모듈의 port를 8081로 변경한다.
main-server MainRestController - main-server는 feign-client든 다른 client든 상관없이 누구든 요청할 수 있도록 RestController를 작성한다.
- 데이터는 편하게 String 하나만 리턴하도록 하였다.
feign-client FeignClient - main-server로 데이터를 요청할 FeignClient interface를 작성한다.
- FeignClient Annotation을 붙이고 name을 설정한다. 이름이 중복되면 안된다.
- url을 사용해서 어느 API로 호출할 것인지 설정한다.
- 만약 하나의 interface에서 여러 API로 호출하려면 url 대신 각 메소드마다 url 주소를 맨 처음에 넣으면 된다.
- RestController 처럼 작성하면 되서, 편하다.
Feign-client FeignResetController - Fegin-client 를 호출할 Controller를 작성한다.
- Service class를 만들고 거기에 Feign Client를 연결하는게 일반적이지만, 비니지스 로직이 없고 테스트 용이기 때문에 Controller에서 바로 FeignClient를 주입받아 사용한다.
- 두개 모두 잘 실행되었다.
- Feign-client를 통해 Main-server를 호출 했을 때, Main-server를 직접 호출했을 떄 모두 잘 나온다.
이렇게 하면 MSA환경 또는 외부와 연동하는 API를 다른 Connect 설정없이 사용할 수 있다.
728x90반응형LIST'Spring Cloud > Spring Cloud Feign' 카테고리의 다른 글
Spring Cloud Feign - 1. Spring Cloud Feign 알아보기 (0) 2024.01.29