在具有多个Netty客户端的WebFlux应用程序中管理Netty资源的最佳做法

时间:2019-05-23 10:01:21

标签: spring-webflux spring-data-redis lettuce reactor-netty r2dbc

在具有多个正在使用Netty的客户端库的反应性应用程序中,是否有关于管理Netty资源(EventExecutorGroup)的最佳实践?

Redis lettuce documentation状态

  

客户端资源的很大一部分由线程池(EventLoopGroups和EventExecutorGroup)组成,这些线程池为连接工作程序构建基础结构。通常,在多个客户端之间重用ClientResources实例是一个好主意。

Spring文档指出,默认情况下,客户端和服务器共享其resources(Reactor Netty HTTP全局资源)

  

Spring Boot默认为Netty,因为它在异步,非阻塞空间中使用更广泛,并且允许客户端和服务器共享资源。

默认情况下,Postgresql R2DBC使用Reactor Netty TCP全局资源(非HTTP ...)

为Reactor Netty,redis Lettuce和其他反应式客户端重用此资源是否有意义?

因为如果我有几个反应式DB客户端(Redis + R2DBC ...)+(WebClient + Reactor Netty),它们每个都可以使用Threads ==处理器数量来创建线程池。

不是很浪费吗?

还是让他们拥有自己的资源更好?

0 个答案:

没有答案