2016-04-26 11 views
2
  • NativeCountry
  • SpokenLanguages

はMIcroservice粒度について問い合わせがありました。例を使ってクエリを説明しようとします。DBテーブルごとのマイクロサービス?

私は上記の3つのテーブルがデータベースにあり、Person - > NativeCountryテーブル間に多対1の関係があるとします。データベースの人 - >言語間の1対多の関係。

フロントエンドアプリケーションは、個人エンティティに対してCRUD操作を実行していると想定されています。また、自然環境や音声言語に基づいて人々を取得する機能も備えています。

エンティティごとに3つの独立したマイクロサービスを開発し、上位レイヤのAggregator Microserviceを使用してUXレイヤの結合データを構築するのは理にかなっていますか?

+0

この質問は有効ですが、ビジネスドメインを理解していないと答えにくいです。 Person、NativeCountry、およびSpokenLanguagesを照会し、独立している必要があるより大きいドメインがある場合は、マイクロサービスを別々に決して分離しないようにするには、通常、単一のマイクロサービスを使用します。ドメイン特有の詳細をいくつか追加したり、他のサービスがそれらを使用する方法があれば、より正確な答えを得るための少しの洞察を与えるかもしれません。 –

+0

UIには、新しい国を追加する機能があると言いますが、これにはネイティブの国とそれに付随する言語があらかじめ組み込まれています。ただし、作成者のUIで使用可能な音声言語を事前に入力するには、使用可能な言語をDBで照会して入力する必要があります。 UIには、これと一致する人々を検索できるように、ネイティブカントリーまたは検索基準として話されている言語の1つを提供することができる検索セクションが必要です。 –

+1

データベースサーバ自体は大きなサービスです。あなたはそれを別のサービスに包んだり、壊したりするだけです。 –

答えて

1

この問題の説明から、これが正しく理解されていれば、機能の中心にある「人」とサービスのユースケースのように聞こえます。言語

  • によって、人々は彼らの母国と以来
  • 一覧すべての言語
  • を話さ言語の両方でユーザーを追加ため

    • ネイティブ国別の人を検索する
    • 検索3つの必要な機能は人々の周りにあり、1つの機能は言語をリストすることだけを必要とし、私はこれがであると主張するだろうマイクロサービス他の可能なエンティティサービスに依存する外部サービスがあるかどうかを知る)。ここでの私の主張は、要求に応えるために、人々は母国と関心のある主体であり、言語はユーザーを検索する次元にすぎないということです。

      各エンティティ、人物、言語、国を異なるマイクロサービスに分割すると、サービスが小さすぎるため複雑さが増します。必要がない場合でも、単一の応答を生成するために、複数のサービスに複数の要求を行う必要があります。人々の周りをまったく回転しない最後の機能については、マイクロサービスに入れるには小さすぎると言います。最後の機能がスタンドアロンサービスである必要が生じるまで、これを「人」マイクロサービスに入れることをお勧めします。

    関連する問題