2017-12-02 17 views
1

나는 현재 Microservices로 놀고 있으며 Angular를 사용하기 시작했습니다. 이제 Angular 내에서 서비스 검색 (예 : 영사관)에 액세스 할 수 있는지 여부를 궁금합니다. 에 액세스하여 내 말은 : 서비스로각도로 서비스 검색 처리

  • 등록 각 응용 프로그램을 레지스트리에

  • 는 등록 된 다른 서비스에 REST 호출을 보내기 (이 호스트와 포트 각 응용 프로그램이 실행되고 알 수 있도록) - 최상의 경우에 단지 서비스 이름을 사용합니다. 나는 봄 부팅을 사용하여 두 개의 간단한 서비스를 개발하는 하나의 사용 사례가 있었다, 나는 다른 사용하여 영사에서 하나의 서비스에 액세스 할 수 this 블로그에서 단계를 적용 :

이 좀 더 정확하게 표현합니다. 따라서 내 REST 호출은 결국 다음과 같이 보입니다.

restTemplate.getForObject (http://city-service/rest/city/capital ', ...);

내가 좋아하는 것은 호스트와 포트 정보에서 추상화 할 수 있다는 점입니다. 지금 당장 Angular에서 같은 작업을하고 싶습니다. 따라서, 대신에이 같은 뭔가 :

this.http.get('http://localhost:8080/rest/city/capital') 

나는이 비슷한 싶은 : 나는 그런 영사와 같은 서비스 검색에 액세스 할 수있는 방법을

this.http.get('http://city-service/rest/city/capital') 

을 (그것은 영사 될 필요가 없습니다 , 다른 것들도 너무 각도)에서? 제가 말했듯이, 저는 방금 Angular를 알기 시작 했으므로 어리석은 질문일지도 모릅니다.

일부 서비스 발견 (영사 포함)은 등록 된 서비스에 대한 정보를 검색하는 REST API를 제공한다는 것을 알고 있습니다. 그러나, 나는 실제적으로 원한 REST 요청을 보내기 전에 우선 명시 적으로 REST 요청을 보내야 할 것이다. 다른 옵션이 있다면 더 선호 할 것입니다. 어떤 도움을 주셔서 감사합니다.

나는이 before에 관한보다 일반적인 질문을 게시했으나, 이제 여기서 질문을 구체화했습니다.

답변

1

영사 및 기타 서비스 검색 시스템은 공용 웹에서 액세스 할 수 없도록 설계되어 있으므로 귀하의 질문은 Angular와 관련이 없습니다.

https://github.com/fabiolb/fabio 또는 https://traefik.io/과 같은 영사 인식 부하 분산 장치를 사용하여 HOST 및/또는 PATH에 따라 영사에 등록 된 서비스로 트래픽을 라우팅 할 수 있습니다.

+0

문제는 Angular에만 국한되지 않습니다. 그러나 Angular가 사용하기 쉬운 가능성을 제공 할 수도 있으므로 Angular를 사용하고 있다고 지적했습니다. 그러나이 Consul 인식로드 밸런서는 내 각형 (또는 다른 프레임 워크) 응용 프로그램이 실행중인 호스트를 미리 모르기 때문에 문제를 해결하는 데 도움이되지 않습니다. 예를 들어 다른 유일한 대안입니다. Spring Boot 나 다른 종류의 응용 프로그램을 동일한 호스트에 배포하여 다른 응용 프로그램이 Consul에 등록 할 수 있도록합니다 (그래서 각 응용 프로그램이 동일한 호스트에 있음을 암시 할 수 있음). – MDDCoder25

+0

클라이언트 측 응용 프로그램 또는 .html/.js/.css를 제공하는 서버를 말하고 있습니까? –

+0

OpenShift와 같은 클라우드 플랫폼에 각도 앱을 배포하고 싶습니다. 다른 응용 프로그램은이 각도 응용 프로그램을 참조해야하므로 응용 프로그램이 실행되고있는 호스트를 알아야합니다.이를 위해 서비스 검색을 사용하고 싶습니다. 그러나 질문은 더 일반적인 의미이기도합니다. 거기에 일부 서비스가 등록되어 있고 사용하고 싶다면 해당 서비스 (질문의 두 번째 부분)를 호출 할 수 있어야합니다. – MDDCoder25