TL; DR: Spring Framework и Reactor Netty не предоставляют такую поддержку, и я не знаю ни одной библиотеки, которая делает это.
Вы можете реализовать описанное вами поведение с помощьюWebFilter
, который перехватывает входящие запросы перед их отправкой обработчикам и отвечает любым HTTP-статусом / заголовком по вашему выбору.
Единственная сложная задача - решить, следует ли отклонить запрос или нет.Вы можете настроить фиксированную пропускную способность таким образом, чтобы она не превышала или полагаться на какой-либо другой показатель JVM?
Теперь я бы не назвал это «противодавлением», по крайней мере, в контексте Spring.В реактивных потоках обратное давление примерно означает, что потребитель дает производителю информацию о количестве сообщений, которые он может отправить.Согласно спецификации, клиент не может отправить больше сообщений, чем разрешено.
В контексте HTTP в Spring мы не применяем противодавление при приеме новых соединений, но эта информация используется при чтении / записи в буферы TCP.Эта информация не пересекает сеть, поэтому мы просто полагаемся здесь на управление потоком TCP.
Если вы хотите, чтобы в протоколе была реальная поддержка противодавления, вам нужно, чтобы она поддерживалась в самом протоколе.В этом и заключается смысл будущей поддержки RSocket в Spring.