2016-07-10 6 views
0

マルチスレッドアプリケーションを使用しており、同時要求に基づいてリニアチャネルサイズを回避したいとします。たとえば、30のオープンチャネルによって処理される30の並列要求。そのため、私たちはパイプラインに異なるインバウンド・チャネル・ハンドラを追加して、複数のメッセージを書き込むために同じチャネルを使用することを計画しました。しかし、特定のケースでは、あるハンドラに対する応答メッセージが他のハンドラによって読み取られ、要求/応答の不一致があります。実用的ではないので、多くのチャネルを実際に作成することなく、高トランザクション/秒(TPS)を処理するより良い方法がありますか?(TPSは100まで上がるので、100チャネルを作成するのは費用がかかりますか?異なるInboundHandlerを使用して同じNettyチャネルにメッセージを書き込む

リクエスト/レスポンスの一致をどのように処理できるのかをご提案ください。

答えて

0

私たちの会社では、各リクエストは一意のIDとしてグローバルなlong値を追加します。 と応答で同じ一意のIDが返されるため、1つの要求に対する応答を知ることができます。 AtomicLongクラスで一意のIDを生成できます。

+0

確かに、私たちはその解決策について考えました。しかし、その場合、一致するIDを返送するための応答を提供するシステムに義務付けられています。だから、私たちは、そのアプローチを回避するための他のより良い選択肢があると考えていました。何もうまくいかなければ、私たちはおそらくそれに従わなければならないでしょう。あなたのご意見ありがとうございます! –

関連する問題