2016-07-28 3 views
0

私は、本質的になります個人的なプロジェクトのためにmicroservicesのセットの開発に自分自身をプッシュしようとしています:マイクロサービスベースのアーキテクチャでは、どのようにデータベースへのアクセスを行うのですか?

使用弾性検索 投票の各種データを格納 場所データとデータストア からデータを読み取るにはへのREST APIを公開この例の目的のために、ユーザー

は私が私に起こった最初のものは、データストレージを処理する方法だっ予約MSとセールスMS

を持っていたと言うことができます。

  1. 各MSに独自のデータストアが必要ですか?
  2. 他のすべてのマイクロサービスのすべてのデータを処理するPersistence MSを導入する必要があります(これは奇妙なことです)。
  3. 各MSがデータベースを共有しますが、独自のトランザクションを処理する必要があります。あなたは、独自の永続性を処理する各サービスが大幅に一例として、あなたは定型コードやライブラリの大規模な全体的なフットプリント(の多くを持っているポイントにマイクロサービスを膨らまないことを持っている場合は

休止うすべてのプロジェクトで必要なライブラリになり、すべてのMSが同じライブラリセットをロードする必要があることはひどいようです)。

私は、マイクロサービスアーキテクチャ全体のデータベース接続を管理するために受け入れられる方法論が何よりも重要であると考えます。

答えて

2

この質問への答えは非常に簡単です:

  • 分散モノリスを構築しようとしないでください:microserviceとして永続性レイヤを構築しません。
  • 分散トランザクションを実行しようとしないで、ドメインにバインドされたサービスを持つことによって機能的なアプローチを試みてください。
  • 複数のマイクロサービスにHibernateを含める必要があります。これはあなたが受け入れなければならないトレードオフです。
関連する問題