0

オンライン オークション アプリケーションの作成方法を決定中です。サイトのユーザーにリアルタイムの更新を提供したいと思います。私のバックグラウンドは LAMP です (ただし、私の場合、'P' は PHP よりも Perl に適しています)。ActiveMQ を検討しましたが、より良いオプションがあるかどうか疑問に思っています。

私の主な関心事は、スケーラビリティと速度です。複数の同時オークションが行われる可能性があり、[できれば] 多くのユーザーが各オークションに参加します。私が決定する解決策が何であれ、そのようなシナリオに対応する必要があります。もちろん、これはすべて理論上の話なので、同時ユーザー数はわかりませんが、何万人ものユーザーをサポートする手段が必要です。

もう 1 つの懸念事項は、実装の容易さです。私は過去数日間、ドキュメントやチュートリアルを読んできましたが、これまでのところ、対処するのに多少の苦痛しか感じていません。実際に、ここでアドバイスを求めるようになりました.

Codeigniter (PHP) や Catalyst (Perl) などの Web フレームワークを使用したいと考えていました。これは、コーディングの大部分を支援するために請負業者に 1 人か 2 人支払うつもりであり、フレームワークを持つというアイデアが気に入っているためです。設計パターンをある程度強制する。しかし、これを調べれば調べるほど、1) フレームワークを使用し、2) リアルタイムのオークション更新を提供するための明確な解決策が見当たりません (Tornado 以外だと思います - 多分私は自分自身に答えているのかもしれません)。質問。 ;))。

とはいえ、ポーリングを使用する以外に (私はあまり興味がありません)、サーバー側のコードに Perl や PHP などの言語を使用して、これらのリアルタイム更新を実現する方法はありますか? ActiveMQ が STOMP をサポートしていることは知っていますが、実際にはこれをローカル マシンで動作させています (クライアント側の JavaScript からメッセージを発行/消費するにはサーブレットが必要なため、Jetty を使用しています)。

もっと直接的な質問がなくて申し訳ありませんが、数日間ドキュメントとチュートリアルを見た後、私はこれまで以上に迷子になりました!

4

1 に答える 1

1

あなたの問題の一部は、さまざまな概念を混ぜ合わせることです。私が物事を正しく読んだ場合、あなたは次の問題の声明を持っています:

私はオンライン オークション サイトを構築しており、訪問者が閲覧中の商品の価格をリアルタイムで更新できるようにしたいと考えています。

ブラウザとサーバーの間では、Comet スタイルのリクエスト パターンを使用して通信を処理することになるでしょう。また、socket.io をバックアップ パターンとして参照することもできます。このポーリングには、多数の同時オープン接続を処理できるサーバーが必要です。Tornado は良い候補です (他にもありますが、Tornado との関係で尋ねられたので、それは良いことです)。

1000 以上のブラウザから少数の Tornado サーバーに移行した今、それらの間で通信する方法が必要です。パブリッシュ/サブスクライブ メッセージ パターンの最後では、いくつかの選択肢があります。

  • ラビットMQ (AMQP)
  • ゼロMQ
  • Redis パブ/サブ

3 つすべてが良い選択であり、それぞれに長所と短所があります。個人的には、さまざまなプロジェクトで Redis と Rabbit を使用し、ZeroMQ をいじりました。メッセージ ブローカーは、利用可能なものに基づいて決定される全体の決定木です。

于 2011-11-29T15:54:07.873 に答える