0

プロトタイプを作成しているツールの単純なアーキテクチャを試してみようとしています。Web ベースのツール (.NET ベース) は、基本的に複数のパブリック API からデータを要求し、応答データ (JSON または XML) を照合して処理し、集計データをデータベースに保存します。簡単に聞こえるかもしれませんが、このツールは、約 3000 人のユーザーに対して、少なくとも毎日 1 回、このプロセス (要求/処理/保存) を実行する必要があります。スケジュールされたタスク (cron ジョブ) としてプロセスを定期的に実行すると、パフォーマンスが大幅に低下し、サーバー (単一 VPS) のリソース使用量が増加します。

問題は、そのようなツールを高速かつスケーラブルでありながらシンプルで簡単に実装できるようにするために、どのような種類のアーキテクチャまたはフレームワークを利用できるかということです。

どんなアイデアや考えでも大歓迎です。

乾杯。

4

1 に答える 1

0

cronの実行中にリソース消費がピークに達するという問題に直面している場合は、cronの代わりにプログラムを継続的に実行してください。プログラムを継続的に実行できるようにプログラムを中断する詳細は、詳細によって異なります。たとえば、3000人のユーザーがいるとしましょう。単純なアプローチの1つは、28秒ごとに1人のユーザーを処理することです。

高速-プログラムで正確に遅いもの、使用したアルゴリズムなどについては言及していませんでした。質問は、負荷のピークの問題に直面しているように聞こえました。多くの場合、高速プログラムはリソース使用量のピークを引き起こします。私には、プログラムを(意図的に)遅くするのがうまくいくように思えます。AND Slowは、プログラムを非効率的に設計することを意味するものではありません。

スケーラビリティ-基本アルゴリズムが優れていると仮定した場合、スケーラブルにする1つの方法は、マシンを追加することです。

于 2013-01-14T04:14:32.413 に答える