非同期 http のライブラリを使用するクライアント REST API を Java で開発する必要があります。より具体的には、http 応答の Future を返す Rest CRUD 操作を行うことができます。私の質問は、ラッパー API がこれらの Future オブジェクトをどのように扱うべきかということです。API のユーザーに Future を提供するだけで、それを処理するのはユーザー次第なのか、それとも何らかのスレッド メカニズムを開発する必要があるのでしょうか。
質問する
1725 次
2 に答える
2
私があなたのAPIの消費者だった場合、次の場合を除き、マルチスレッドを実行しないでください。
- NIO または何か (別名 Netty/Grizzle) (例: https://github.com/sonatype/async-http-client ) を使用して、独自の高度に最適化された専用のイベント IO ループがあります。
- 自分のExecutorServiceをプラグインできる方法がある
私が言っているのは、Future を返すことで価値を追加するつもりはないということです。実際、スレッドを自分で処理したい場合は面倒ですが、提供するのは非同期 API (を返すFuture
) だけです。
APIクライアントをスレッドセーフにすることが推奨され、興味があります(つまり、使用するたびに新しいクライアントをインスタンス化する必要はありません)。
ただし、 async-http-client (NIO)などを使用している場合は、Future
.
于 2012-08-24T14:01:22.587 に答える
0
なぜそれが必要なのですか?・高負荷システムのFutureとして持つことが重要だと感じています。
- APIとして、消費者が誰であるかがわからないため、このような機能があると役立ちます。
Web サイトの場合、高負荷をサポートする必要がある場合、http 応答を待つだけでは CPU 時間が無駄になります。非同期にするのではなく、http ワーカーが他のリクエストをより効率的に処理できるようにします。
これを簡素化できるライブラリを使用してください。
于 2014-06-18T09:36:14.620 に答える