SOA でのデータ処理のさまざまな代替手段は何ですか。私がこれまでに PoC で行ったことは次のとおりです。
- 複数のマシンでのサービスのスケーリング。
- 1 つのユニバーサル サービスが、サービス レジストリと検出を処理します。
- 1 つのサービスに対する複数の要求は、クラスター上の複数のマシンで実行されているサービスの任意のインスタンスに転送できます。
次に、分散キャッシング層の導入を予定しています。どのサービスでも、分散キャッシュ レイヤーからデータを取得できます。システムが次の場合のフロー全体:
クライアントはサービスからデータを要求します。
サービスは、要求された有効なデータのキャッシュをチェックします。データが有効な状態であれば、すぐにクライアントに返されます。それ以外の場合は、要求されたデータに対して永続的なデータ ストレージが呼び出され、キャッシュを更新することによってクライアントに流れます。
ここで、クライアントがデータの処理を要求し、サービスによって処理できる場合。データはサービスの 1 つのインスタンスで処理できますか、それともサービスの複数のインスタンスで処理できますか 3a または 3b?
3a. 重要なデータ フィルターをクライアントからサービスに渡すだけです。複数のサービスインスタンス間で処理コマンドを分散します。各インスタンスは小さなデータ セットに対して操作を実行し、キャッシュと永続ストア内のデータを更新します。ここでは、データを渡す代わりに、クラスタ間で処理コマンドを渡しています。
3b. サービスの 1 つのインスタンスでデータ全体を処理し、キャッシュと永続的なデータ ストアで更新します。
最後に、処理されたデータをクライアントに返します。
トランザクション システムについては、分散キャッシュに依存する必要がありますか? サービスの複数のインスタンスによってデータが処理されている間に、一貫性の問題が発生する可能性があります。1 つのインスタンスが古いデータを読み取り、分散システムでその古いコピーを処理できます。分散キャッシュに依存することで、どの程度堅牢になりますか?
分散システム (SOA) で処理する必要があるトランザクション データのセットはどれくらいですか? mulesoftのサイトでこの行を読んでいます
「アプリケーション間でワークロードを共有しながら、一時的な状態の情報をインメモリ データ グリッドで維持し、防弾の信頼性とスケーラビリティを提供します」
スケーラビリティと信頼性を備えた分散システムを実現するための指針はありますか?