0

いくつかの共有データにアクセスするサービスを実装しており、これらのデータを個別にアクセスできる部分に分割する方法がないと仮定しましょう。このため、一度にこれらのデータを読み書きできるスレッドは 1 つだけです。

これを解決するための非効率的な正しい方法は、同期技術​​ (セマフォ、モニターなど) を使用することです。これにより、Netty ワーカー スレッドが共有データに同時にアクセスして破損することがなくなります (要求を処理するとき)。ただし、全体のロック/ロック解除は確かにパフォーマンスを大幅に低下させます。

したがって、最初の質問は次のとおりです。

単一のワーカー スレッドを持つように Netty を構成する方法は?

2 つ目は次のとおりです。

共有データに複数のスレッドが同時にアクセスできないという問題を解決するには、どのような設計がよいでしょうか?

ワーカー 1 のソリューションは問題を解決しているように見えますが、何万ものクライアントが同時に接続し、リクエストを送信して応答を待っている可能性があるため、それが Netty のパフォーマンスにどのように影響するのだろうかと思います...

4

2 に答える 2

1
  1. SocketFactory に単一のスレッド化されたエグゼキューターを与える、または
  2. パイプラインに単一のスレッド化されたエグゼキューターを持つ共有の ExecutionHandler を配置する
于 2013-05-15T13:42:32.103 に答える