Задать вопрос
bingo347
@bingo347
Crazy on performance...

Можно ли передать файлдескриптор сокета из Go в Node.js?

Есть веб-сервер написанный на Go
На сервер могут приходить http запросы и вебсокеты
Часть http запросов сервер обрабатывает сам, а часть отдает процессу на node.js, все веб-сокеты отдаются в node.js
Сейчас это все реализовано как реверси-прокси, что удваивает количество соеденений + издержки на проксирование.
Можно ли отдать непосредственно сам сокет процессу на node.js через пробрасывание файл-дескриптора?

Задача:
Есть приложение на ноде, написано не мной, работает в 1 процесс.
Передо мной задача во-первых, запустить его на всех ядрах процессора, во-вторых сделать кэширование статики в памяти.
Сначала я думал просто сделать балансировку через ngnix или cluster, но есть проблема в том, что нужна более умная балансировка - session-stiky + у новых сессий есть некоторые условия распределения

Для решения написал несложный балансировщик с нужной логикой на go, который выдает статику из своей памяти и переодически проверяет необходимость обновления кэша, а запросы к динамике проксирует на один из процессов приложения, а теперь нужно все это дело оптимизировать, чтоб "долгосрочные" запросы, такие как вебсокеты не проксировать, а просто отдавать открытый конект ноде
  • Вопрос задан
  • 559 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kshvakov
Нет. А что вообще значит "Часть http запросов сервер обрабатывает сам, а часть отдает процессу на node.js", кто отдает, кто обрабатывает ? У вас перд go/node стоит nginx и на уровне location проксирует часть на go, а часть на node или в go прилетает все, а он дальше куда-то еще засылает ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы