2016-11-29 20 views
5

マイクロサービスAとBがあります。Bには独自のデータベースがあります。しかし、Bは水平にスケーリングされなければならないので、私たちはBの3つのインスタンスを持つことになります。データベースはどうなりますか?それに応じて拡大縮小しますか?3 Bインスタンスの同じ(集中化された)データベースのままですか、それは分散データベースになりますか?マイクロサービス:データベースとマイクロサービスインスタンス

+1

3インスタンスを共有する必要が依然として1つの論理サービスです。したがって、データベースは1つだけ必要です。 –

+0

@TomRedfernあなたの答えをありがとう;) あなたはまた、データベースを拡大する必要がある状況にいたことがありますか?もしそうなら、それをどうやって扱いましたか? – nobitta

+0

可能な複製http://stackoverflow.com/questions/33399988 – KGhatak

答えて

3

複数のサービスインスタンスで1つのデータベースを使用することは、データの分割を使用しているときに問題ありません。

0

答えは、どの種類のデータを3つのBインスタンスから共有するかに基づいています。いくつかの場面:

  1. Bはただ単に異なるDBインスタンスからデータを読み込み、DBが複製されたDBがレプリケート・方法論を使用することができ、何も書き込まずにデータを読み、3つのBのインスタンスです。

  2. Bインスタンスは、他のBインスタンスの中断なしでデータを読み書きできます。つまり、すべてのBインスタンスが指定されたデータを持ち、インスタンス間でデータの共有ができないため、同じスキーマを持つ3つのデータベース;

  3. Bインスタンスはほとんどのデータを共有する必要があり、すべてのインスタンスでデータをDBに書き戻すことができます。したがって、Bインスタンスは、1つのDBといくつかのDBロックを使用して、インスタンス間の競合を回避する必要があります。他のいくつかの異なる状況で

、などのRedis、BのインスタンスのRabbitMQのようなキューサービスのようなメモリDBを使用して問題を解決するために、他の多くのアプローチがあるでしょう。同じサービスのpattern database per serviceにクリス・リチャードソンによって説明したように

0

インスタンスが同じデータベースにBの

関連する問題