Как мне масштабировать реактор HTTP -сервер подключений в секундуJAVA

Программисты JAVA общаются здесь
Anonymous
Как мне масштабировать реактор HTTP -сервер подключений в секунду

Сообщение Anonymous »

Как я масштабирует реактор http -сервера в секунду? < /p>
Прямо сейчас приложение игрушек масштабирует до 500 соединений в секунду (точно). < /p>
(меня не беспокоит количество запросов, которые можно обработать на секунду на одном соединении. 21, и реактор-сеть 1.2.4 < /p>
Поиск документации реактора Я могу найти информацию о масштабировании клиента HTTP (которая настроена в конструкторе), но тот же вариант не доступен на сервере HTTP. (Погода, это лежит в библиотеке или ОС, хотя, учитывая небольшое число, я предполагаю библиотеку), поэтому я не знаю, связаны ли это с пулами, потоками, планировщиками, каналами, очередями подключений или жестким ограничением.package example;

import reactor.core.publisher.Mono;
import reactor.netty.DisposableServer;
import reactor.netty.http.HttpProtocol;
import reactor.netty.http.server.HttpServer;

public final class MVP {

public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create()
.port(80)
.wiretap(false)
.compress(false)
.protocol(HttpProtocol.HTTP11);
server.warmup();
DisposableServer disposableServer = server
.route(routes ->
routes.post("/fortune", (req, res) -> {
Mono returnContent = req
.receive()
.aggregate()
.asString()
.filter(str -> str.length() > 0);
return res.sendString(returnContent);
})
)
.bindNow();
Mono.when(disposableServer.onDispose()).block();
}
}
< /code>
тестовый скрипт < /p>
#!/bin/bash

hostname=$(hostname)
time1=$(date +%s)
echo "Start time: ${time1}"
# Test rapid connections
for i in {1..10000}
do
# sleep 0.00001
curl --cacert ./certs.pem http://${hostname}/fortune -d "key${i}=${time1}" -H "Content-Type:application/x-www-form-urlencoded" -o /dev/null > /dev/null 2>&1 &
done
time2=$(date +%s)
echo "End time (estimated): ${time2}"
echo "Connections per second:"
awk "BEGIN { print 10000.0/(${time2} - ${time1}) }"
< /code>
Создание зависимости: < /p>
implementation "io.netty:netty-all:4.1.118.Final"
implementation group: 'io.projectreactor.netty', name: 'reactor-netty-core', version: '1.2.4'
implementation group: 'io.projectreactor.netty', name: 'reactor-netty-http', version: '1.2.4'


Подробнее здесь: https://stackoverflow.com/questions/795 ... per-second

Вернуться в «JAVA»