2

Netty を使用している複数のクライアント ライブラリを持つリアクティブ アプリケーションで Netty リソース (EventExecutorGroup) を管理するためのベスト プラクティスはありますか?

Redisレタスのドキュメントの状態

クライアント リソースの大部分は、接続ワーカーのインフラストラクチャを構築するスレッド プール (EventLoopGroup および EventExecutorGroup) で構成されます。一般に、ClientResources のインスタンスを複数のクライアントで再利用することをお勧めします。

Spring のドキュメントには、デフォルトでクライアントとサーバーがリソースを共有すると記載されています(Reactor Netty HTTP グローバル リソース)

Spring Boot のデフォルトは Netty です。これは、非同期のノンブロッキング スペースでより広く使用されており、クライアントとサーバーがリソースを共有できるためです。

また、Postgresql R2DBC はデフォルトで Reactor Netty TCP グローバル リソースを使用します (HTTP ではありません...)

このリソースを Reactor Netty と redis Lettuce およびその他のリアクティブ クライアントに再利用することは理にかなっていますか?

複数のリアクティブ DB クライアント (Redis + R2DBC...) + (WebClient + Reactor Netty) がある場合、それぞれが Threads == プロセッサ数でスレッド プールを作成できるためです。

もったいないですよね?

それとも、独自のリソースでそれらを保持する方が良いですか?

4

0 に答える 0