私はDatawarehouseアプリケーションにMicroservicesを適用します。マイクロサービスのボトルネックを避ける
1)データサービス:外部データソースをDWHにインポート/エクスポートし、DWHからクエリデータをインポートします。
2)分析サービス:UI
3のグラフの可視化のための)機械学習:推薦システムの
4)レポート:
を報告するための以下のよう
各サービスは独自のDBを持ち、TCPとThを介して直接通信しますift直列化。ここでの問題は、データサービスが他のサービスからの負荷が高く、アプリケーションのSPOFになる可能性があることです。 DWHのデータも大きすぎます(おそらく最大100万のレコード)。この場合、データサービスのボトルネックを回避する方法は?または、ボトルネックを避けるために、正しくバインドされたコンテキストを定義するにはどうすればよいですか?
他のマイクロサービス(Analytics、Reports、MLなど)にDWHデータベースに直接アクセスさせることはできますか?この場合、「1つのデータベース、複数のサービス」になります。 DWHのデータは大きく、データは定期的に更新されるためです。 – Barcelona
@Barcelona私は答えを – Set
更新しました。DataService(DS)は、データアクセスロジック(基本CRUD)のみを他のサービスに提供し、他の処理ロジックは提供しません。他の処理ロジック(インポート、エクスポートなど)は、クライアント呼び出し用です。 DWHへのアクセス、クエリ、および他のサービスへの更新方法のロジックを隠すために、他のサービスとDSとの通信を許可する理由です。他のサービスはDSを呼び出してデータを取得または更新します。 – Barcelona