2016-06-29 2 views
1

Spring Cloud를 사용하여 REST 서비스를 실제로 어떻게 바인딩합니까? 나는 명백한 무엇인가 놓치고있는 것처럼 느낀다. 예를 들어, 스프링 클라우드와 스프링 부트로 실행되도록 설정된 두 개의 마이크로 서비스가 있다고 가정 해보십시오. 첫 번째 서비스에서 두 번째 서비스를 호출하도록하려면 어떻게 바인딩합니까?Spring Cloud - Binding Services Together

내 생각에 유레카는 서비스 레지스트리로 사용할 수 있습니다. 우리가 유레카를 사용한다면, 코드가 어떻게되어서 1 개의 서비스가 또 다른 것을 호출하게 될까요?

+0

유레카는 서비스에 대한 프록시 일 뿐이므로 서비스 URL을 호출하는 대신 '유레카 -URL/서비스 이름'URL을 호출하게됩니다. 우리가 구현하는 마이크로 서비스를위한 cloudfoundry'bind-service '와 같은 것은 없습니다. 대신 우리는 우리 자신의 클라이언트 코드를 작성해야합니다. 예를 들어'RestTemplat' 또는'Apache HttpClient' 나 일반 URLConnection 코드를 사용할 수 있습니다. – 11thdimension

+0

기본 사항을 알아야 할 모든 것을 문서에 담았습니다. https://spring.io/blog/2015/07/14/microservices-with-spring – Hrabosch

답변

0

다른 답변은 올바른 방향이라고 생각하지만 여기에 더 자세한 내용이 나와 있습니다.

Spring Cloud Netflix를 사용하여 Eureka 서버와 클라이언트를 만들 때 EurekaClient 빈을 사용하여 클라이언트의 홈페이지 URL을 얻을 수 있습니다. 그런 다음 RestClient을 사용하여 해당 클라이언트에 대한 API를 호출 할 수 있습니다.

위의 다른 옵션은 Feign client을 사용하는 것입니다.

0

FeignClient를 사용하여 Microservices에서 서비스를 호출 할 수있는 API 게이트웨이를 가질 수 있습니다. 예 : 마이크로 서비스 A와 마이크로 서비스 B. 게이트웨이에는 두 가지 마이크로 서비스 모두를위한 클라이언트가 있습니다. A에서 서비스를 호출하고 B에서 서비스를 제공하는 게이트웨이에 서비스를 작성하십시오.

또 다른 해결 방법은 Microservice A 및 FeignClient에서 MicroService B로 ResourceProcessor를 가질 수 있다는 것입니다. A 리소스 프로세서에서 Microservice B 서비스 호출

0

Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) 및 Client Side Load Balancing (리본 메뉴)에서 우수한 패턴을 제공하는 Spring Cloud Netflix을 사용할 수 있습니다.)는 특히 마이크로 서비스를 기반으로하는 대규모 분산 시스템에 적합합니다.

또한 good documentation resource을 참조하십시오.

관련 문제