Лучшие практики для управления ресурсами Netty в приложении WebFlux с несколькими клиентами Netty - PullRequest
0 голосов
/ 23 мая 2019

Есть ли рекомендации по управлению ресурсами Netty (EventExecutorGroup) в реактивном приложении, имеющем несколько клиентских библиотек, использующих Netty?

Redis документация для салата состояния

Большая часть клиентских ресурсов состоит из пулов потоков (EventLoopGroups и EventExecutorGroup), которые создают инфраструктуру для работников соединений. Как правило, рекомендуется повторно использовать экземпляры ClientResources для нескольких клиентов.

В документации Spring указано, что по умолчанию Клиент и Сервер совместно используют свои ресурсы (глобальные ресурсы Reactor Netty HTTP)

Spring Boot по умолчанию использует Netty, поскольку он более широко используется в асинхронном неблокирующем пространстве и позволяет клиенту и серверу совместно использовать ресурсы.

А Postgresql R2DBC по умолчанию использует глобальные ресурсы Reactor Netty TCP (не HTTP ...)

Имеет ли смысл повторно использовать эти ресурсы для Reactor Netty и Redis Lettuce и других активных клиентов?

Потому что, если у меня есть несколько реактивных клиентов БД (Redis + R2DBC ...) + (WebClient + Reactor Netty), каждый из них может создать пул потоков с числом потоков == Процессоров.

Разве это не расточительно?

Или лучше оставить их за свои ресурсы?

...