ABOUT ME

Today
Yesterday
Total
  • Spring Cloud Feign - 2. Feign을 사용하여 통신하기
    Spring Cloud/Spring Cloud Feign 2024. 1. 29. 17:37
    728x90

    서버 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
Designed by Tistory.