Feign Client
페인 클라이언트는 restTemplate 처럼 다른 외부 api에 요청을 보낼 때 사용되는 방법이다.
사용방법은 openfeign 라이브러리 추가 후
메인 클래스에
@EnableFeignClients를 추가해주면 된다.
그리고
인터페이스를 만들고,
그 위에 @FeingClient추가하고
이렇게 되면
@FeingClient(name="order-service") order-service로 등록된 서비스를 디스커버리로 찾으로 간다.
찾아서 GetMapping 안에 order-service/{userId}/orders로 들어간다 그럼
실제 오더 서비스에서
형광색이 칠해진 api를 호출하는 것이다.
그럼 실제 인터페이슬 사용하는 곳에 객체를 하나 생성해주고,
생성자 주입까지 마친뒤,
사용하면 된다!
Feign Client 로그
설정파일
logging.level.com.example.usersiervice.client: DEBUG
그리고 메인에
빈을 하나 등록해놓으면 로그를 추적할 수 있다.
아래와 같은 로그를 볼 수 있다.
Feign Client예외처리
페인 클라이언트는 404에러도 500에러를 반환할 수 있다. 그렇기 때문에, 적절한 에러를 반환하는 것이 중요하다.
아래와 같이 예외처리를 하면 필요한 곳까지는 동작 후 나머지 feign클라이언트에서 생긴 오류를 돌려줄 수 있다.
좀더 디테일한 에러 처리를 위해서, ErrorDecoder를 implements해서 클래스를 구현하는 방법도 있다.
400번이 들어왔을때, 404번이 들어왔을때, 등등으로 에러를 분기해서 그에 맞는 정보를 보여줄 수 있다.
또 메인 클래스에
빈으로 등록해주고!
그럼 그냥 예외처리를 따로 코드로 하지 않아도, 자동으로 작동한다. 참고로 클래스 자체에서 따로 선언해서 사용할 필요도 없다!
그럼 아래와 같이
메세지가 날아온다!
'MSA(마이크로 서비스 아키텍처)' 카테고리의 다른 글
Docker (0) | 2023.08.03 |
---|---|
데이터 동기화 처리(kafka) (1) | 2023.08.01 |
젠킨스&깃허브 연동 -2 (1) | 2023.07.26 |
젠킨스&깃허브 연동 -1 (1) | 2023.07.25 |
스프링 클라우드 필터 (1) | 2023.07.25 |