どのように春ブーツマイクロサービスデータベースアプリケーションの負荷を分散します

yusufnazir:

私はマイクロサービスに関する研究を行ってきました。私はそれがで開始することがいかに簡単で見る春のブートを使用していました。私の研究の間に私は、データベースからのデータアクセスを行うものであるすべてのマイクロサービスは、独自のデータベースを持っていることは良いアプローチであること読みました。私は、同じマイクロサービスの複数のインスタンスを起動するときに、これがどのように機能するか興味があります。ただ一つのデータベースと同じマイクロサービス作業のそれらのインスタンスは、彼らはまた、別のデータベースを必要としたりすることはできますか?私のためのジレンマは、データを複数のデータベース間で異なるだろうです。どのように負荷がこのような状況のためのマイクロサービスの仕事のバランスをとるのでしょうか?

最初の3件のコメント後に編集私はコメントを感謝しています。私は、私はこの質問の後ろに私の考えを説明する中で欠けていた感じ。私は、モノリシックアプリケーションを構築するために使用しています。私は春の使いや休止状態(hibernatedaosupport)と最近もenversを休止しました。私がコミットし、データベースのロールバックの状況を管理するために、スプリングのトランザクション管理を使用しています。これは、これまで私のために働いています。私はマイクロサービスに探し始め、これまでにマイクロサービスとして、休止状態とenversで使用される春のトランザクション管理は、単一のデータベースでどのように動作するかの適切な説明を見つけることができませんしています。私は、このマイクロサービス作業の1つのインスタンスのみを理解することができますが、このマイクロサービスの複数のインスタンスがひとつのデータベースで正しく動作するかどう私は好奇心旺盛です。特に、Hibernateはパフォーマンス上の理由から、データベースのオブジェクトをキャッシュという事実を考慮すると、

エルネスト・Campohermoso:

そのマイクロサービスが別のデータベースを持っている必要がありますについては、すべてのあなたのマイクロサービス間で1つのデータベースを共有したり、マイクロサービスごとに1つずつ持つことができる必要はありません。それはあなたとアカウントに別のトレードオフを取って、建築の決定に依存します。

あなたはマイクロサービスごとに1つのデータベースを決定した場合、あなたは同じマイクロサービスの多くのインスタンスを持っています。あなたは(モノリスと同様)だけで1つのデータベースを使用する必要があります。Hibernateとキャッシュのあなたの懸念について、あなたはHazelcast(使用例により、異なる方法でキャッシュを処理する必要がありhttps://hazelcast.com/use-cases/caching/hibernate-second-level-cache/)またはEhcacheのを。

とにかくデザインパターンが異なるトレードオフを持つだけのベストプラクティスあり、後で決定を行うためのすべてのパターンの長所と短所を理解する必要があります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=209836&siteId=1