Micro-Services를 사용하여 응용 프로그램을 설계하고 있으며 여러 서비스에서 데이터를 수집하는 데 사용할 수있는 최상의 메커니즘이 확실하지 않습니다.
두 가지 옵션이 있다고 생각합니다.
- 서비스가 직접 대화 할 수있는 '서비스 간'통신 메커니즘을 통합합니다. API Gateway는 개별 서비스를 호출 한 다음 통합 된 응답을 API Gateway로 반환하기 전에 다른 서비스를 호출하여 데이터를 수집합니다. 그런 다음 API는 응답을 호출자에게 반환합니다. serviceB를 호출 할 때 serviceA.IE 별도의 개인 및 주소 서비스의 응답이 필요한 경우 동기 호출이어야합니다.
- 응답을 리턴하기 전에 API 게이트웨이가 각 서비스를 직접 호출하고 API 내의 데이터를 통합하도록하십시오.
서비스가 서로 대화하게하면 커플 링이 발생할 수 있으므로 두 번째 옵션을 기대하고 있습니다.이 경우 모 놀리 식 응용 프로그램을 설계 할 수도 있습니다. 그러나이 옵션으로 내 머리 꼭대기에서 벗어날 수있는 몇 가지 심각한 단점이 있습니다.
API가 여러 서비스에 대한 여러 호출을 실행하게하면 특히 일부 호출이 차단 될 때 API 서버의로드가 증가합니다.
이 방법은 API가 애플리케이션이 수행하려는 작업을 '인식'해야한다는 것을 의미합니다 (IE 로직은 서비스 호출을 처리 한 다음 데이터를 통합하기 위해 API로 프로그래밍되어야 함). 마이크로 서비스의 멍청한 '종점'역할을합니다.
이 문제에 대한 표준 접근법이 무엇인지, 누락 된 또 다른 세 번째 옵션이 있는지 알고 싶습니다.