私は現在、World Wide Webのコンテンツ抽出プログラムを構築中の大学のプロジェクトに取り組んでいます。このために、今まで2つのモジュールがあります。Webクローラーと、2つの別々のマシンで実行されるインデクサーです。私たちは作業が進むにつれてモジュールを追加する予定ですが、今のところ、メッセージのやり取りの何らかの形で2つの通信手段が必要です。私たちはよくわからない何Java分散アプリケーション - メッセージ受け渡し
は、以下の通りです:
(ⅰ)当社は、当社のアプリケーションは、同期メッセージパッシングを必要としないことを感じます。基本的に、クローラモジュールはWebページをクロールし、特定のページを訪れたときにIndexerモジュールを呼び出します。ですから、(JMSのような)いくつかの非同期プロトコルを選択するか、代わりに同期プロトコルを使用する利点がありますか?
(ii)現在、2台のマシン間で必要なデータ(URL)を渡すためのGoogleプロトコルバッファを使用してJMSを使用することを検討しています。これは適切でしょうか、それとももっと良い選択肢がありますか?
適切なプロトコルの主な基準はスケーラビリティとスピードです。
私たちがどんな種類の分散アプリケーションで作業しているのは初めてです。だから、任意の助けが最も高く評価されるだろう:)
ありがとう:)
ありがとう:Indexerモジュールは現在mongodbを使用しています。単純なメッセージの受け渡しよりもMap-Reduceの利点は何ですか?現在、私たちはマシンのクラスタ、モジュールごとの個々のコンピュータだけを扱っていません。単一のモジュールの作業を複数のマシンに分散するとmap-reduceが後で必要になると私は考えましたか? – arya