Задать вопрос

Архитектура сервера?

Привет всем. Сейчас есть такая архитектура сервера:



Приложение в цикле каждые 100 мс делает вычисления, создает локальное tcp-соединение (с nginx-cервером), POST-запросом через это соединение отправляет информацию ~30-40 байт, закрывает соединение.



Естественно, это очень медленно, а причин несколько:

  • 100 мс, достаточно маленький интервал
  • TCP-соединение создается каждый апдейт цикла (О Keep-alive знаю, но поможет ли?)
  • Собственно, POST-запрос. HTTP-протокол для таких вещей ущербный




Прошу вас помочь в ускорении всего этого.

Во-первых, была идея не создавать подключение каждый раз, а сохранять Keep-alive, но дело в том, что таких вот приложений может быть тысячи запущенных одновременно, и все это на одном хосте. Не знаю, что лучше: держать серверу постоянное подключение или пересоздавать его.



Еще, наверное, стоит выбросить вообще POST-запрос и HTTP.



Будет лучше ли такая реализация:

Выбрасываю вообще nginx (он был звеном между приложением, которое раздавало информацию и клиентами, читающими GET-запросами)

Клиенты напрямую соединяются по TCP к серверу, настраивают, говорят информацию о себе и потом называют udp-порт, приложение соединяется с ним и начинает слать напрямую поток данных.



Что скажите, буду благодарен за любую подсказку.
  • Вопрос задан
  • 4661 просмотр
Подписаться 7 Оценить Комментировать
Ответ пользователя mitric К ответам на вопрос (3)
@mitric
Конечно http здесь избыточен. Слать данные в открытое постоянное сокет-соеденение будет быстрее. Делал такое на одной машине и между удаленными.
Ответ написан
Комментировать