Привет всем. Сейчас есть такая архитектура сервера:
Приложение в цикле каждые 100 мс делает вычисления, создает локальное tcp-соединение (с nginx-cервером), POST-запросом через это соединение отправляет информацию ~30-40 байт, закрывает соединение.
Естественно, это очень медленно, а причин несколько:
- 100 мс, достаточно маленький интервал
- TCP-соединение создается каждый апдейт цикла (О Keep-alive знаю, но поможет ли?)
- Собственно, POST-запрос. HTTP-протокол для таких вещей ущербный
Прошу вас помочь в ускорении всего этого.
Во-первых, была идея не создавать подключение каждый раз, а сохранять Keep-alive, но дело в том, что таких вот приложений может быть тысячи запущенных одновременно, и все это на одном хосте. Не знаю, что лучше: держать серверу постоянное подключение или пересоздавать его.
Еще, наверное, стоит выбросить вообще POST-запрос и HTTP.
Будет лучше ли такая реализация:
Выбрасываю вообще nginx (он был звеном между приложением, которое раздавало информацию и клиентами, читающими GET-запросами)
Клиенты напрямую соединяются по TCP к серверу, настраивают, говорят информацию о себе и потом называют udp-порт, приложение соединяется с ним и начинает слать напрямую поток данных.
Что скажите, буду благодарен за любую подсказку.