2

次のような生のウェブログを処理する個別のJavaインスタンスプログラムがあります。

jvm instance 1 read fileA --> process
jvm instance 2 read fileA ---> process
jvm instance 3 read fileA ---> process
....

jvmインスタンスの数が増えると、disk IOプロセスの数も増えると思います。そして、この解決策が適切に機能しない時が来ます。

だから誰かが私に別の解決策を教えてもらえますかfor reduce the disk IO

理想的なのは、JMSサーバー(Apache ActiveMQなど)を使用して、キュー内のストアのファイルを読み取り、処理することです。

JMSを使用する場合は問題がありますか?

親切に助けてください。

4

1 に答える 1

2

ここでは、イベント駆動型ソリューションが確かに優れたオプションであるため、JMSがおそらく優れたソリューションになるでしょう。

ただし、コンシューマーがプロデューサーに追いついておらず、永続的な配信を使用する場合は、メッセージがハードドライブに保存され、ディスクIOが発生することに注意してください。ただし、これは問題にはならないと思います。同時コンシューマーの数をいつでも増やすことができ、クラスター(たとえば、ActiveMQで構成するのは非常に簡単です)を使用して負荷に対応することもできます。

要約すると、ファイルシステムの変更をアクティブにポーリングする必要がなく、処理アプリケーションのスケーリングが非常に簡単になるため、JMSは問題の優れたソリューションになると思います。

統合のトピックに興味がある場合は、エンタープライズ統合サイトにアクセスして、このトピックに関するGregorHohpeとBobbyWoolfによる非常に優れた本を読むことができます。あなたは言及されたサイトでそれへのリンクを見つけることができます。その中には、両方のアプローチのすべての長所と短所があり、利用可能な他の方法に慣れることができます。とにかく、メッセージングは​​間違いなく素晴らしい方法です。

そこに記載されているパターンの実装として、ラクダのフレームワークを使用することを検討してください。

于 2012-07-26T09:29:52.843 に答える