フロントエンドは単純なJetty(後でTomcatに置き換えられる可能性があります)サーバーです。サーブレットを通じて、製品の機能を公開するためのパブリックHTTP API(多かれ少なかれRESTful)を提供しています。
バックエンドには、いくつかの種類のメンテナンスタスクを実行するJavaプロセスがあります。バックエンドプロセスは通常、時間になると独自のタスクを実行しますが、フロントエンドはウェイクアップする必要があります。バックエンドで特定のタスクを実行するためのバックエンド。
このタスクに最適な(N)IOライブラリはどれですか? Netty、Grizzly、kryonet、プレーンRMIを見つけました。今のところ、Nettyと言いたくなります。使い方は簡単で、おそらく非常に信頼性があります。
この種のセットアップの経験がある人はいますか?あなたの選択は何でしょうか?
ありがとう!
あなたの質問に答えるこの文書を翻訳してみてください。 http://blog.xebia.fr/2011/11/09/Java-nio-et-framework-web-haute-performance/
この社会は、フランスの有名なJava EEの専門家として、VmWare(USI2011)が後援するフランスの挑戦の文脈でNIOサーバーの多くの概念実証を行いました。それは簡単なクイズアプリを構築することでした。 100万人の接続ユーザーの負荷を処理できます。
彼らは素晴らしい結果でその挑戦に勝ちました。それらの実装はNetty + Gemfireであり、CachedThreadPoolをMemoryAwareThreadPoolに置き換えるだけでした。
Nettyは素晴らしいパフォーマンスを提供しているようで、十分に文書化されています。
彼らはまた、トルネード(python/facebook)に触発されたDeftを検討しましたが、それでも彼らにとっては少し未熟です
編集:ここに 翻訳されたリンク コメントで提供されています
私の好みはNettyです。シンプルでありながら柔軟性があります。非常に高速で、Netty周辺のコミュニティは素晴らしいです。
私が働いている会社は現在評価中です CoralReactor 。これは商用ソフトウェアですが、Java NIOでこれまでに見た中で最も簡単なAPIを備えています。私の個人的な意見では、Nettyは、特にゴミをなくして単一にしたい場合は、物事を複雑にしすぎます。 -スレッド化。これは、金融、広告、ゲーム業界の多くの企業の要件です。
私はJMSを使用してそれらを分離し、バックエンドがそこに座ってリッスンしているいくつかの(セットの)制御キューを持っているだけで完了です。ここにカスタムnioapiを作成する必要はありません。
サンプルプロバイダーの1つはhornetqです。これは、インプロセスのjmsブローカーとしても実行でき、内部でNettyを使用します。