24

フロントエンドは単純な Jetty (後で Tomcat に置き換えられる可能性があります) サーバーです。サーブレットを通じて、パブリック HTTP API (多かれ少なかれ RESTful) を提供して、製品の機能を公開しています。

バックエンドには、いくつかの種類のメンテナンス タスクを実行する Java プロセスがあります。通常、バックエンド プロセスは必要なときに独自のタスクを実行しますが、フロントエンドがバックエンドを起動して特定のタスクをバックグラウンドで実行する必要がある場合があります。

このタスクに最適な (N)IO ライブラリはどれですか? Netty、Grizzly、kryonet、および単純な RMI を見つけました。今のところ、私は Netty と言う傾向があります。使いやすく、おそらく非常に信頼性が高いようです。

この種のセットアップの経験がある人はいますか? あなたの選択は何ですか?

ありがとう!

4

4 に答える 4

18

あなたの質問に答えるこのドキュメントを翻訳してみてください。 http://blog.xebia.fr/2011/11/09/java-nio-et-framework-web-haute-performance/

この協会は、フランスの有名な Java EE 専門家として、VmWare が後援するフランスの課題 (USI2011) のコンテキストで NIO サーバーの多くの poc を行いました。それは、100 万人の接続ユーザーの負荷を処理できる単純なクイズ アプリを構築することでした。

彼らは素晴らしい結果でその挑戦を勝ち取りました。彼らの実装は Netty + Gemfire であり、CachedThreadPool を MemoryAwareThreadPool に置き換えただけです。

Netty は優れたパフォーマンスを提供するようで、十分に文書化されています。

彼らは、Tornado (python/facebook) に触発された Deft も検討しましたが、まだ少し未熟です。

編集:コメントで提供されている翻訳されたリンクは次のとおりです

于 2011-11-25T13:31:55.623 に答える
4

私の好みはNettyです。シンプルでありながら柔軟です。非常に高速で、Netty を取り巻くコミュニティは素晴らしいものです。

于 2011-11-26T17:14:28.500 に答える
3

私が働いている会社は、現在CoralReactorを評価しています。これは商用ソフトウェアですが、私が今まで見た Java NIO の中で最も簡単な API を備えています。私の個人的な意見では、Netty は物事を複雑にしすぎます。特に、金融、広告、およびゲーム業界の多くの企業にとって必要条件であるガベージ フリーおよびシングル スレッドを実現したい場合はなおさらです。

于 2015-07-07T05:37:01.603 に答える
2

私は JMS を使用してそれらを分離します。バックエンドがリッスンしているいくつかの (一連の) コントロール キューを用意するだけで完了です。ここでカスタム nio API を記述する必要はありません。

サンプル プロバイダーの 1 つが hornetq です。これは、インプロセスの jms ブローカーとしても実行でき、内部で Netty を使用します。

于 2011-11-25T12:56:09.723 に答える