2017-03-09 16 views
0

私は、各テーブルが基本的にCRUD操作(各テーブルの休憩クライアントのようなもの)を持った独自のマイクロサービスを持っている電子商取引アプリケーション用のマイクロサービスアーキテクチャに遭遇しました。 今、私は、ビジネスドメインの周りにそれらを組み合わせてモデル化することを考えています。その前に、誰かがそのような状況に遭遇したことを知りたかったのですか? ご意見は非常に役に立ちます。おかげさまで Microservices DBテーブル

+1

各microserviceを助けるとは思いません。彼らは同じ持続性を共有してはならない。もっとここで読む:https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358/ref=pd_sim_14_29?ie=UTF8&dpID=5156gHBSxaL&dpSrc=sims&preST=_AC_UL160_SR122%2C160_&refRID=0081XVQGTK2AQ54GQ21P –

+0

おかげコンスタンティン応答のために私はマイクロサービスがその実装とデータベースを隠さなければならないことに絶対に同意しますが、この場合は各テーブルごとに個別のマイクロサービスがあります。たとえば、テーブルAの場合、MicroserviceA、B microserviceB、各テーブルで同じように多くのマイクロサービスがいくつあるかがあります。 –

答えて

2

あなたは、関連性のないさまざまなものを混ぜています。

(マイクロ)サービスは、特定のタスクを実行する論理エンティティです。より広い範囲のタスクを実行するために他のサービスと通信します。

テーブル/ CRUD/SQL/NO-SQLは、完全に異なるレベルから来ています。そのデータが保存される場所とそのアクセス方法について説明します。

サービスがSQLを使用し、テーブルを持っていることは本当です。また、各サービスごとに別々のテーブルを用意することも良い考えです。私は、2つのサービスが同じテーブルを直接使用する場合は、おそらく設計上の問題があると言っています。

サービスをテーブルと同一視することはできませんが、概念的には異なる世界に属しています。

1

各マイクロサービスには、他のマイクロサービスがアクセスできない独自のSQLテーブルセットが必要です。しかし、SQLテーブルごとに1つのマイクロサービスを持ち、各マイクロサービスにCRUD操作をサポートさせるのは、一般的に反パターンです。強力なDBMSとクエリ言語を単純なレコードマネージャにします。クロステーブルトランザクション、ジョイン、フィルタリング、ソート、等

1

マイクロサービスは、任意のアプリケーションの論理ブロックであり、SQLレベルでそれらを組み合わせても意味がありません。

たとえば、注文サービスを作成して、顧客が注文できるようにすることを考えてみましょう。

今注文には注文アイテムも含まれており、顧客オブジェクトの参照がある可能性があります。これらのすべてが複数のテーブルを作成する可能性があります。だからあなたはまだ疑問がより正確に質問を投稿している場合は、SQLテーブルと一緒に

microservicesは、別のテーブルとサービス間の通信は、ネットワークthroughtに行われている必要があります:)