Таймураз
Но если + ~1мс к задержке критична, можно покурить маны насчет редиски на каждой машине. Но я бы так делал только раз n-дцать подумав, от чего оно может завалиться
Vl
Всем, привет. Есть вопрос. кто-то использовал nest.js? Кто что может сказать о нем?
Igor
считаете ли вы что ДИ нужен? https://docs.nestjs.com/advanced/dependency-injection
Vl
еще вопросик, кто-то сталкивался с масштабированием TCP сервера на nodejs?
Vl
типо на разных серверах и в разных регионах расположить сервера.
Alessandro
это через nginx наверное
Vl
но они были бы все за одним доменом.
Vl
я думал geo dns
Vl
как-то в ту сторону посмотреть
Vl
может есть у кого-то опыт в этом?
Alessandro
ну наверное есть какие-то SAAS
Alessandro
найди чатик админов)
Vl
Ну помимо этого же надо код сделать готовым к маштабированию горизонтальному)
Vl
через cluster только или через pm2 тоже кто-то имел успех работы?
V
Кластер работает в пределах одной физической машины
Server
Ребят подскажите по mongoose, как мне получить _id, если там в массиве может быть много объектов? мне нужно проверить полученный id на существование в базе
если я правильно понял, то вам нужно понять тему Relations and connections https://github.com/nodkz/graphql-compose/blob/master/docs/03-guide/04-relations.md#04---relations-and-connections
сomorsiс
он имел ввиду cluster нодовский
Таймураз
он имел ввиду cluster нодовский
А, тьфу, не так вчитался
Таймураз
Ну помимо этого же надо код сделать готовым к маштабированию горизонтальному)
Тебе нужно пару месяцев читать разного рода материал по горизонтальному масштабированию
V
Ну и стейтлесс
V
С ним проще
Vladimir
Vladimir
Тем временем, галп смотрит в сторону Napa.js
Таймураз
Тем временем, галп смотрит в сторону Napa.js
Нихухры себе. Жаль, нет задач, чтобы на практике с этим поработать
Mannaro
Привет :) Подскажите, есть простой способ направить 2 stream в один и закрыть его тогда, когда первые 2 закончат работу?
Mannaro
.pipe(stream, { end: false }) не особо вариант, так как в таком случае надо как-то понять, какой был последний =)
Таймураз
.pipe(stream, { end: false }) не особо вариант, так как в таком случае надо как-то понять, какой был последний =)
require('stream').PassThrough отслеживаешь on('end') последнего стрима и шикуешь
Таймураз
да, сначала пайпишь первый, на его выходе начинаешь пайпить второй
сomorsiс
или берешь mississippi
Oleg
а чем на сервере поднимать скрипт nodejs после рестарта сервера?
Vladimir
pm2
Igor
можно ли апи заимпрувить
Pavel
Ребят подскажите,пытаюсь запилить примитивный чат по примеру с хабра,когда поднимаю сервак,пытаюсь по localhost простучаться,сервак не отвечает,client.js выглядит так
Pavel
Подозреваю что дело в socket = io.connect('http://localhost:8080');
Pavel
server.js выглядит так
сomorsiс
gist.github.com
Pavel
https://gist.github.com/Stripped/f00125ae21079b0191bd0cfc8ce5506f
Joseph
Как можно сделать популейт для этого
сomorsiс
Vl
Ну у меня сейчас так работает
Vl
и все гуд) Просто у меня это все добро за nginx
Pavel
Ничего не пишет,просто пытаюсь перейти по localhost:8080 и не отдаёт страницу
Pavel
а какие ошибки пишет?
Vl
а я хочу на DNS это все делать
Pavel
а сервак стартует без ошибок
сomorsiс
надо отдавать статику
Vl
а регионы разные?
регионы серверов разные.
Vl
Но беда, что они за одинм nginx стоят все.
сomorsiс
запусти express приложение на другом порту
Vl
+ я юзаю web sockets, а при балансировке через DNS они обрываются. Так как там нету липких сессий, которые дает nginx с помощью ip_hash на ustream
Vl
т.е при балансировке DNS сокеты начинают обраывтся и вести себя крайне не стабильно. Также будет если убрать ip_hash и настроек nginx
Roman
Но беда, что они за одинм nginx стоят все.
и какой тогда в этом смысл?
Vl
Ну вот. Я и хочу переделать так, чтобы это было не за одним nginx
Vl
а с помощью GEO DNS отправлялось на разные nginx за которыми будут стоять сервера nodejs
Vl
а что подразумевается под "балансировка dns"?
Ну не совсем, чтобы балансировка. Просто, чтобы с помощью DNS пускать трафик на те сервера, которые ближе географически.
Vl
в моем случае это будет быстрее.
Vl
у нас messenger - очень важна скорость работы.
Roman
в моем случае это будет быстрее.
да нет же. 100500 случаев когда трафик из Питера в Питер шел через Лондон
Vl
Ну это не всегда так.
Vl
Если в редких случаях так будет - то это не сильно влияет на ситуацию.
Vl
К примеру юзер из австралии не должен же бежать на сервер в лондоне
Alex
ни кто случаем не знает, как на яндекс картах при построении маршрута через multiroute, подписать точки можно? Не могу найти метод документации подходящий
Vl
да нет же. 100500 случаев когда трафик из Питера в Питер шел через Лондон
К примеру юзер из австралии не должен же бежать на сервер в лондоне. он должен грузить изображения к примеру на ближайший сервер в австралии, оттуда данные попадают на файловый сервер, который в австралии, а далее репликация несет их еще на несколько регионов.
Vl
таким образом у юзера все будет быстро, а через пару сек, картинка станет доступна везде.
Vl
Вопрос в том, что websocket когда балансируется через nginx на несколько серверов - работает отлично, с добавлением опции ip_hash в nginx. Таким образом nginx знает к какому из серверов был подключен сокет и в случае кратковременных сбоев сети или других причин не переносить соединение на другой сервер. Так как пока nginx у нас бабансирует round robin. и соединение не разрывается и не прыгает между серверами. А когда это делаешь с помощью DNS - то конкретный сокет подключается к одному из сервернов nginx за которым еще стоят nodejs сервера. Но вот DNS не имеет опции ip_hash и выходит, что коннектит юзера то к одному серверу, то к другому.
Vl
Вот суть проблемы
Vl
@pragus ответил)
Vl
Да.
Vl
Я это знаю.