2011-07-26 6 views
0

私の問題はGoogleとstackoverflowで検索されましたが、良い解決策が見つかりませんでした。以下は説明ですさまざまなソースからの結果の集約 - Javaアプリケーションのアーキテクチャ

Java Webアプリケーションは、ローカルデータベースと外部WebサービスAPI呼び出しの検索結果を表示します。したがって、検索ロジックはこれらの結果を結合して結果ページに表示する必要があります。問題は、外部API呼び出しがローカルDB呼び出しよりも遅い結果を返すことです。パフォーマンスは検索結果にとって重要であり、結果は生きているはずです。つまり、外部の結果をローカルDBにキャッシュしたり永続させたりしないでください。今は、DB呼び出し用と外部API用の2つのスレッドにまたがっており、これらの結果を組み合わせて画面に表示します。しかし、特に複数の外部APIを呼び出すと、アプリケーションのパフォーマンスが低下します。

この問題のアーキテクチャ上の解決策はありますか?

ご協力いただければ幸いです。おかげさまで

答えて

0

データを表示する前に表示することはできません。

1)あなたのローカルデータを表示することができ、来ると、ajaxを介して他のデータを追加できます。

2)質問が繰り返される場合は、外部の回答を短時間キャッシュすることができます(古い回答で新鮮な回答で置き換えられることを警告して表示することができます)。新鮮なアンバーが到着するとすぐに、新しい答え。

少なくとも1)、システムは応答性があり、2)使用可能な回答は、それが現在ではない場合でも即座に利用できる。

btw、外部の情報源が長い時間がかかる場合は、回答が古くないことを確認してください(たとえば、データを収集して休息を待ってから、今まで収集した内容が古くなる可能性があります)。だから多分(そしておそらくそうではない)短期間の持続性は、あなたが思うほど悪くない。

+0

ありがとうございました。私は今、私は外部の当事者からの結果を待つ以外の選択肢がないと思う: – Pandiaraj

関連する問題