방금 microservices 주제로 들어가기 시작 했으므로 어리석은 질문인데 변명하십시오.REST 마이크로 서비스 간 통신 - REST 호출시 호스트 또는 포트에서 멀리 떨어진
두 개의 마이크로 서비스가 있는데, 하나는 REST API를 제공하고 하나는 멋진 프론트 엔드를위한 마이크로 서비스입니다. 각 마이크로 서비스는 다른 마이크로 서비스와 통신 할 것으로 예상됩니다. 나는 이것을 구현하는 많은 예제와 그 기본적으로 큰 문제를 보지 못했습니다. 나는 그 사실을 잘 알고있다. 그러나 이러한 모든 예에서 각 마이크로 서비스에서 이와 비슷한 것을 보았습니다.
this.http.get('http://....:8080....');
처음에는 기동하기가 어려웠습니다. 그러나 지금 당장 이러한 구현이 서비스를 서로 밀접하게 연결하지 않는지 궁금합니다. http URL에서 호스트와 포트가 수정 된 것을 볼 수 있습니다. 어떤 경우에는 잘 작동하지만, 우리의 마이크로 서비스가 동적으로 포트를 선택합니다. 이미 문제가 있습니다. 그런 다음 다른 마이크로 서비스의 포트를 그런 식으로 정의 할 수 없습니다. 호스트 정보도 마찬가지입니다. 마이크로 서비스가 다른 호스트에서 실행될 수 있다면 항상 정적으로 호스트를 정의 할 수는 없습니다.
내가 잘못하면 저를 시정하십시오. 호스트 또는 포트와 같은 세부 사항을 추상화 할 수있는 방법이 있습니까?하지만이를 동적으로 찾아내는 또 다른 방법이 있습니까? 아니면이 문제를 암시하지 않는 마이크로 서비스 간의 의사 소통을위한 다른 좋은 대안이 있습니까?
서비스 레지스트리를 사용하는 서비스의 예를 보았습니다. 이것에 의해, 우리는 이것에서 조금 벗어나 추상화 할 수 있습니다 - 아니요? 이것이 유일한 가능성입니까? 이것이 여기에 관련이 있는지는 잘 모르겠지만, 지금까지는 마이크로 서비스를 구현하기 위해 스프링 부트를 사용하고 있습니다.
먼저 답변 해 주셔서 감사합니다. 프론트 엔드가 마이크로 서비스로 간주되어서는 안되는 이유를 간단히 설명해 주시겠습니까? 예를 들어 백엔드가 있고이 백엔드에 여러 개의 프론트 엔드를 제공하고 싶습니다. 그런 다음 모든 프론트 엔드에 백엔드를 복사해야합니까? 게다가 여기에 여러 개의 서비스가 없더라도 서비스가 실행되는 포트의 호스트가 아닌 동일한 문제가 발생할 수 있습니다. 네가 이것에 대해 자세히 설명 할 수 있다면 기쁠거야. 감사. – MDDCoder25
마이크로 서비스는 비즈니스 역량을 대표해야하며 서비스는 함께 작고 자율적 인 ** 서비스를 제공해야합니다. Autonomous는 종속성의 가용성에 관계없이 각 서비스가 클라이언트에 응답 할 수 있음을 의미합니다. 전자 상거래의 예 서비스는 "카탈로그", "주문"또는 "배송", "카탈로그"일 수 있으며, 모든 제품을 소비자에게 보여주는 것을 포함하며 "주문"서비스 가용성에 관계없이 제품을 볼 수 있습니다. –
동일한 백엔드에 대한 다중 프론트 엔드에 관해서는 [UI 구성] (https://jimmybogard.com/composite-uis-for-microservices-a-primer/) 또는 [프론트 엔드 용 백엔드] (http : // samnewman)를 사용할 수 있습니다. io/patterns/architectural/bff /) 마지막으로 서비스 검색 메커니즘이 필요한 서비스 경계를 정의한 후에는 https : //www.consul을 사용해보십시오.io –