2016-07-27 1 views
0

마이크로 서비스가 무엇인지 이해하려고합니다.Microservices를 사용하면 다른 서비스가 데이터베이스에 저장 될 비슷한 엔티티를 어떻게 처리합니까?

지금 당장은 각자 또는 클라이언트가 호출 할 수있는 분리 독립 서비스에 불과하다고 생각합니다.

ProductService 및 UserService가 있다고 가정 해 보겠습니다. Google 시스템에서 사용자는 물론 제품에 대한 의견을 제시 할 수있는 경우 두 시스템의 주석을 주석 테이블에 저장해야합니까? 아니면 각 주석 테이블에 별도의 주석 테이블이 있어야합니까?

각 서비스는 자체 데이터베이스를 사용하거나 한 곳에 저장해야합니까?

답변

2

내가 지금, 그냥 분리 된 것 자체에 포함 된 서비스를 서로 또는

당신은 잘 이해 클라이언트가 호출 할 수 알고있는 것처럼 ! 그것은 바로 거기에 꽤 괜찮은 정의입니다 :

  • 분리 - 설계, 구축, 배치, 별도로
  • 관리 자체에 포함 된-
  • 서로 호출 할 수있는 전자동 - 잘 알려진 프로토콜, 동기화 또는 비동기 통신.
  • 또는 클라이언트에 의해
  • - 각 서비스는 자신의 합성 가능한 UI 구성 요소에 노출

우리의 시스템은 사람뿐만 아니라 제품에 대한 언급을 사용자로, 우리는 두 시스템의 코멘트에 저장해야 허용하는 경우 주석 표

별도의 주석 서비스가있는 경우에만이 작업을 수행 할 수 있습니다. 자신이 정의한 바에 따라 서비스는 자체적으로 포함되어야합니다. 즉, 데이터 모델이나 데이터베이스 테이블과 같은 공유 종속성이 없다는 의미입니다.

각 서비스는 자체 데이터베이스를 사용하거나 한 곳에 저장해야합니까?

다시 말하지만, 당신의 정의를 인용, 서비스는 너무 오래 그들이 서버 인스턴스를 공유 할 수있는 동일한 데이터베이스 인스턴스를 사용하지 않는 한, (또는 적어도 분리 가능)로 구분해야합니다.

2

엔티티에 따라 서비스를 분할하는 것과 같은 사운드는별로 좋은 생각이 아닙니다.

당신이 준 예제에서 두 접근법 중 하나를 사용하거나 둘 다 별도로 저장하거나 복제 할 수 있습니다. 그것은 당신이하려는 일, 그 정보에 어떻게 접근하고 서비스가 어떻게 상호 작용하는지에 달려 있습니다. 전체 컨텍스트를 이해하지 않고도 빠른 솔루션을 사용하면 장래에 문제가 발생할 수 있으므로 지금 당장 시간을 보내고 피하십시오.

Microservices가 무엇이며 어떻게 구축 할지를 설명하면 전체 책 한두 권을 가져갈 수 있습니다. 따라서 Microservices by Sam Newmann으로 시작하는 것이 좋습니다.

나는이 주제에 아주 좋은 소개입니다 전에 그 책을 추천했습니다. 첫 번째 장에서 질문에 대한 답변을 제공합니다.