2017-05-23 1 views
1

나는 REST 마이크로 서비스와 그것을위한 클라이언트 라이브러리를 만들고있다. 두 언어 모두 동일한 언어 (이 경우 C#)를 사용하려고합니다.Microservice와 Client 라이브러리 프로젝트간에 모델을 공유하는 것이 좋습니다.

해당 프로젝트간에 응답/요청 모델을 공유하는 것이 좋습니다. 또는 내 고객 프로젝트는 독립적이어야하므로 자신의 모델을 보유하고 있습니까?

답변

2

REST 마이크로 서비스와 클라이언트 라이브러리간에 응답/요청 모델을 공유하는 것이 좋습니다.

네, 좋은 사례입니다. 요청/응답 모델은 서비스 정의의 일부이므로 서비스와 소비자간에 공유되어야하는 몇 가지 사항 중 하나입니다. 서비스와 소비자 간의 수직 결합은 피할 수 없으므로 받아 들여야합니다. 그러나 서비스간에 모델을 공유 할 때는주의를 기울여야합니다.

는 지금은 다음에 대한 혼란이다 : 다른 microservice가 무슨 말인지 모르겠어요 그 클라이언트 라이브러리

를 사용하는 경우 - 서비스가 클라이언트 라이브러리를 사용하지 않습니다. 그들은 등 보안, 모니터링, 같은 크로스 커팅 문제를 대표하는 모델이 아니라면

이상적으로는, 서비스 간의 모델에는 공유가 없을 것

+0

이제 다음 사항에 대해 혼란스러워합니다. 다른 마이크로 서비스가 해당 클라이언트 라이브러리를 사용하면 모델을 자동으로 사용하기 시작합니다. -> 모델 공유 ... – Set

0

이 오케이 때의 경우가있을 수 있습니다 해당 모델을 공유 할 수 있습니다. 일반적으로 나는 그것들을 별도로 유지할 것이다. 클라이언트의 모델은 데이터의 출처와 모델 (서비스 측면)이 변경되는 빈도 및 변경이 직접 영향을 미치는지에 대해 걱정할 필요가 없습니다. 2면을 분리하면 빌드/배포주기가보다 안정적으로 유지되고 서비스 모델이 변경 될 때마다 클라이언트를 다시 빌드해야 할 필요가 없습니다. 또한 클라이언트 모델의 다른 부분이 다른 마이크로 서비스의 데이터를 소싱 할 수 있습니다. 내가 생각하기에 전체 모델의 복잡성에 관한 모든 문제.

관련 문제