IT

RestTemplate와 비교하여 가장을 사용할 경우의 장점과 단점은 무엇입니까?

itgroup 2023. 2. 22. 21:44
반응형

RestTemplate와 비교하여 가장을 사용할 경우의 장점과 단점은 무엇입니까?

Feign은 선언적이어서 개발자에게 많은 것을 추상화한다는 것을 알고 있습니다.하지만, 언제 하나를 택해야 할까요?위장은 선언적이지만 oAuth에 심각한 문제가 있습니다.RestTemplate over Feign을 사용할 때 고려해야 할 사항은 무엇입니까?

Feign을 사용하면 REST 서비스를 호출하는 메커니즘을 추상화할 수 있습니다.Feign 인터페이스를 설정하고 주석을 달면 간단한 Java 함수 호출을 통해 REST 서비스를 호출할 수 있습니다.REST 콜의 실제 실장은 Feign에 의해 런타임에 처리됩니다.즉, 비즈니스 로직 코드를 변경하지 않고 구현을 구성할 수 있습니다.

Java에서 Feign 설정을 변경하는 것만으로, 또는 속성을 사용하는 것으로, 부호화/복호화, 로깅, 및 REST 콜 실장 라이브러리를 변경할 수 있습니다.이 모든 작업은 구성을 통해서만 수행되며 서비스를 호출하는 비즈니스 로직은 변경되지 않습니다.

Feign은 표준 Java 인터페이스를 사용하기 때문에 유닛 테스트 시에도 쉽게 조롱할 수 있습니다.

몇 가지 장점이 있습니다.

1. URL은 하드코드 되어 있지 않습니다.

2. 테스트하는 코드는 없지만 통합 테스트를 작성해야 하므로 위장을 위해 유닛 테스트 케이스를 작성할 필요가 없습니다.

3. URL 대신 Eureka 클라이언트 ID를 사용할 수 있습니다.

4. 실제 코드를 취급하는 체.

5. 리본 및 유레카와 자동으로 통합됩니다.

6. Feign은 RESTful 서비스를 호출하는 매우 쉬운 방법을 제공합니다.

사용의 장점 중 하나는Feign에 걸쳐서RestTemplate즉, 다른 서비스를 호출하기 위해 구현을 작성할 필요가 없습니다.따라서 처음부터 테스트할 코드가 없기 때문에 유닛 테스트를 작성할 필요가 없습니다.단, Integration test를 작성하는 것이 좋습니다.

rest-template보다 Feign-client를 사용하면 여러 가지 이점이 있습니다.저는 그것들을 아래에 열거하겠습니다.

  1. 개발자는 구현에 대해 걱정할 필요가 없습니다.추상적인 Feign 인터페이스와 몇 개의 주석을 만드는 것만으로 선언적 원칙입니다.(맞춤 구성을 원하는 경우 코드를 유지할 수 있습니다.)

  2. Spring Cloud Eureka에서는 리본 클라이언트 측 로드밸런서가 Feign 클라이언트를 탑재합니다.

  3. 유닛 테스트에 대해서는 걱정할 필요가 없습니다.테스트할 실장이 없기 때문입니다.(변수 가능)

  4. Feign 주석 및 JAX-RS 주석을 지원합니다.

  5. Spring Cloud(특히 Eureka 서버 레지스트리)와 호환성이 높고 쉽게 구성할 수 있습니다.

  6. @Configuration 클래스 또는 응용 프로그램 속성을 통해 Feign 클라이언트를 설정할 수 있습니다.

  7. 인터셉터를 추가할 수 있습니다.(@Configuration 또는 응용 프로그램 속성을 통해 인터셉터를 추가합니다.또는 Spring Cloud가 제공하는 요격기를 사용할 수도 있습니다.예 - Basic Auth Request인터셉터)

  8. 폴백 메커니즘에 대한 히스트릭스 지원

  9. 로깅

  10. 에러 처리

Feign은 좋은 선택입니다.JPA와 JPA가 쿼리를 해결하는 방법에 관심이 있다면 Feign은 당신을 위한 도구입니다.Feign은 당신의 서버 요청을 완벽하게 처리할 것입니다.

동기 콜의 발신에는 RestTemplate 가 사용됩니다.RestTemplate를 사용하면 URL 파라미터가 프로그래밍 방식으로 생성되어 데이터가 다른 서비스로 전송됩니다.보다 복잡한 시나리오에서는 RestTemplate에서 제공하는HTTP API의 상세 또는 훨씬 낮은 레벨의 API에 액세스해야 합니다.

Feign은 REST 기반 서비스 호출보다 더 높은 수준의 추상화를 제공하기 위한 Spring Cloud Netflix 라이브러리입니다.Spring Cloud Feign은 선언적 원칙에 따라 작동합니다. Feign을 사용하는 경우 클라이언트에 선언적 REST 서비스 인터페이스를 작성하고 이러한 인터페이스를 사용하여 클라이언트프로그래밍합니다.개발자는 구현에 대해 걱정할 필요가 없습니다.

언급URL : https://stackoverflow.com/questions/46884362/what-are-the-advantages-and-disadvantages-of-using-feign-over-resttemplate

반응형