マイクロサービスのベストプラクティスアプローチについて少し混乱しています。1つのデータベーステーブルの読み書き用の2つのマイクロサービス
次のシナリオ:MQTTデバイスから
大規模な受信メッセージ。顧客がメッセージを読むことができる休憩API(主にその一部のみ)。
私の考えは、メッセージをデータベーステーブルに格納するための1つのマイクロサービスを作成することでした。そして、このメッセージを読むための残りのAPIを備えた2番目のマイクロサービス。 スケーリングの問題が原因でこれをやりたい(入ってくる記憶部は、読書用のAPIよりもはるかに多くの電力を必要とします)
「完全な」マイクロサービスだけがデータベース内の自分のデータにアクセスする必要があります。したがって、他のマイクロサービスは、データベースレベルではなくAPIを介してこのデータを要求する必要があります。 私のアプローチは完璧なものではありません。
- 一つだけmircroservice、格納し、残りのmicroserviceは、データをフェッチすることができ保存microservice、でAPIを作る
- を読み取るための:私はこれを処理するためのいくつかのオプションを参照してください。
しかし、それらのすべては、私のためによく見えません。
あなたの意見は?
よろしく、 マルクス
少し具体的です。メッセージが飛行機からのGPS位置であるとしましょう。残りのAPIは、航空機(航空会社)の所有者に、すべての航空機の現在の位置または1つの航空機の1つの場所の位置を見ることができるようにします。 – mananana
私にとっては、この情報は2つのデータベースが必要であることをさらに強調しています。時間ベースのトレースを表示する必要があるため、細分化された書き込みデータを取得して表示するためのスキーマが最適化されます。 –
もし私がそれを分けてしまうと、書いてあるマイクロサービスからの位置が非常に大きなテーブルと、読み込まれたマイクロサービスのための非常に大きなテーブルがあります。 (1日当たり数百万の新しいエントリ)。 データが少ないため、このコンセプトは理にかなっています。しかし、非常に大きなデータの場合、問題になる可能性があります。 私は、1つのマイクロサービスで読み書きを組み合わせる "シンプルな"アプローチがより適していると思います。 – mananana