@nodejs_ru

Страница 174 из 2748
Павел
01.09.2016
11:42:10
Т.е. собираем образ с приложением, и образ nginx'а со статикой этого приложения?

Denis
01.09.2016
11:42:14
Да

Roman
01.09.2016
11:46:41
Потому что Apache это сделает быстрее
Нет, не быстрее. И апач по пути съест всю память

Amir
01.09.2016
11:46:54
Приехали

Google
Amir
01.09.2016
11:47:05
На статике нет

Больше чем енжинкс и нода

Но быстрее ноды точно

Roman
01.09.2016
11:47:50
На статике нет
Вот сразу видно людей не знающих отличий мультиплексоров от prefork

когда упрешься в производительность ноды в 1 потоке
so_reuseport и вот это всё, если говорить о линуксе. Ядро само раскидает запросы между воркерами

Vint
01.09.2016
11:51:07
@pragus прав, апачу очень плохо при большом кол-ве медленных соединений. Но отсюда и ответ, почему nginx лучше Node для статики - зачем ноде заниматься этим? Ей своей "динамики" с головой хватает. А обслуживанием внешних клиентов с медленным и лагающим инетом пусть занимается nginx.

Amir
01.09.2016
11:51:08
Пусть будет по вашему Роман.

Vint
01.09.2016
11:52:11
Например?

Amir
01.09.2016
11:52:15
Я не спорил вообще, если есть вариант отдавать статику апачем или нодой, лучше апач

Если есть енжинкс, лучше в разы

openresty для тех случаев есть

Мы же тут не про хайлоад трем

Google
Roman
01.09.2016
11:54:27
Я не спорил вообще, если есть вариант отдавать статику апачем или нодой, лучше апач
Я не понимаю вашего упрямства с апачем. Апач тратит процесс/тред на каждый коннект. Если у тебя 4к коннектов, то это 4к процессов.

Amir
01.09.2016
11:54:36
Вы со статикой быстрее в канал упретесь чем в память

Roman
01.09.2016
11:55:33
Мы же тут не про хайлоад трем
Это не про хайлоад. Машина с апачем элементарно досится даже с gprs

Amir
01.09.2016
11:55:41
Я не упираюсь, Апач терпеть не могу как и попытки использовать язык какой-то вместо профильного софта типа енжинкса

Машина с любым сервисом наружу ддоситься

Vint
01.09.2016
11:56:41
Это не про хайлоад. Машина с апачем элементарно досится даже с gprs
Факт. Раньше так "клали" довольно крупные проекты. Но не суть. Зачем насиловать труп?) Роман, можно пример проблем с nginx?

Amir
01.09.2016
11:56:43
Лично я против костылей в виде ноды отдающей статику

Bogdan
01.09.2016
11:57:16
+1

на продакшн ноде не место (статика)

Vint
01.09.2016
11:57:45
Amir
01.09.2016
11:57:48
Даже динамику можно качественно отбывать nginx + ssi

Не учителя людей плохому, запроксировать контент статичный и сервис в роде 10 минут гугления

Ноде*

Roman
01.09.2016
11:58:46
Факт. Раньше так "клали" довольно крупные проекты. Но не суть. Зачем насиловать труп?) Роман, можно пример проблем с nginx?
мм... мне надо отдать файл с диска, потом сходить к внешнему сервису, получить путь к следующему файлу, снова отдать его клиенту. всё это в рамках одного tcp коннекта. т.е. для клиента это должно выглядеть как tcp-коннект, из которого периодически льются данные.

Amir
01.09.2016
11:59:18
Это уже не статика

Roman
01.09.2016
11:59:23
это первая проблема. вторая проблема - на моих задачах уж слишком много начинает занимать копирование памяти

Это уже не статика
с чего бы вдруг? всего лишь надо несколько файлов с диска склеить и отдать как один

Amir
01.09.2016
11:59:54
Потому что у вас логика

Какой файл следующий

В одной точке входа

Google
Amir
01.09.2016
12:00:25
В разных случаях вернётся разный набор файлов

То что вы отдаёт кстати ярый контент это другой разговор

Статичный контент*

Roman
01.09.2016
12:00:57
да не файл, а поток байт.

Amir
01.09.2016
12:01:06
Ваша ручка возвращает Динамику

Все поток байт;)

В статике это одинаковый результат

Roman
01.09.2016
12:01:49
Ваша ручка возвращает Динамику
ну окей. пусть будет динамика.

Vint
01.09.2016
12:02:11
да не файл, а поток байт.
А этот поток можно сформировать и положить на диск, чтобы потом отдавать через nginx? Если да, то так и надо делать. Иначе, действительно, динамика получается.

Amir
01.09.2016
12:02:15
Ну в таком случае openresty, golang

Если много

Либо много НОД за балансировщикамм

Amir
01.09.2016
12:02:56
Всегда можно запросить контент

И получить редирект на поток байт в виде файла

Который вы дописываете быстрее чем его читают

Vint
01.09.2016
12:03:28
Либо много НОД за балансировщикамм
А балансировщик всё равно nginx с кучей upstream) Вот и пришли опять к неизбежности его наличия.

Amir
01.09.2016
12:03:46
Енжинкс хорошо

Нода не балансировщик

И н сервер раздачи статики

Vint
01.09.2016
12:04:16
Именно. Даже нативный cluster лучше заменить балансировкой на nginx.

Google
Amir
01.09.2016
12:04:38
Нативный кластер?)

Он ужасен

Код посмотрите

upd

Udp т.е.

Vint
01.09.2016
12:05:05
Я о том и говорю. Но он не ужасен, у него цель другая просто.

Amir
01.09.2016
12:05:08
Дайте нагрузку и теряйте пакеты

Roman
01.09.2016
12:05:16
nginx - плохой балансер

Admin
ERROR: S client not available

Amir
01.09.2016
12:05:30
А хапрокси не лучше

Быстрее но не лучше

Vint
01.09.2016
12:05:46
nginx - плохой балансер
Вполне хороший. Ведь речь не о хайлоаде, как выше было сказано?

Amir
01.09.2016
12:05:49
Что тотдопиливать на луа придется

Работать пора)

Vint
01.09.2016
12:08:15
В общем, тут спорить вообще не о чем, на мой взгляд. Правило простое: всё внешнее (что дальше вашего сервера) - тормозное и лагающее непонятно-что, и его всегда надо обслуживать отдельным процессом. Что за процесс будет - вопрос второй уже.

Roman
01.09.2016
12:22:49
Вполне хороший. Ведь речь не о хайлоаде, как выше было сказано?
просто если не хайлоад - то можно использовать вообще всё что угодно.

Vint
01.09.2016
12:24:04
Ну да. На сайте про любимиго домашнего кота. Но речь всё-таки о более-менее живых и настоящих проектах. И лишь 1 из 1000 таких как-то нагружен. В остальных можно применять компромиссные решения.

Roman
01.09.2016
12:25:46
ну я вот видео раздаю. совсем немного, но всякие особенности уже дают о себе знать

Vint
01.09.2016
12:28:25
С видео не работал, увы. Тонкостей там полно. Для чего-то солидного с видео раньше народ любил эрлангом обмазаться. Сейчас, наверное, стоит смотреть в сторону go. Но тут чатик с Нодой, поэтому надо брать её и пытаться оптимизировать.

Vladimir
01.09.2016
12:29:29
Если аккуратно работать с бинарными данными - то все должно быть вполне ок

Google
Vladimir
01.09.2016
12:37:51
В частности, если речь идет о видео, то я бы сделал пул с буферами фиксированной длиной и утилы для стриминга таких буферов

Anton
01.09.2016
12:44:21
Нативный кластер хак еще тот. Долго не мог понять кто так его сделать додумался.

Vladimir
01.09.2016
12:52:32
Вопрос не в том - как, вопрос - зачем

другого способа-то особо и нет

Никита
01.09.2016
14:13:36
О, хромиум 53, а я пропустил.

@vkurchatkin Это кстати тот, в котором промисы не такими медленными сделали.

Но им ещё есть куда дальше оптимизировать.

Никита
01.09.2016
14:15:12
Всем привет! Подскажите плиз. Есть mongoose схемы Account и Window. Они связаны так: var Account = new Schema({ ... windows: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Window' }] }); var Window = new Schema({ ... creator: { type: mongoose.Schema.Types.ObjectId, ref: 'Account' } }); окна в аккаунт я добавляю так: var window = new Window({ ... creator: mongoose.Types.ObjectId(req.user._id) }); window.save(); Account.findByIdAndUpdate( req.user._id, { $push: { "windows": window } }, { safe: true, upsert: true, new: true }, function (err, user) { if (err) console.log(err); req.logIn(user, function (err) { if (err) return next(err) res.send({ success: true, window: window }); }) } ); А удаляю так: Window.findOne({ id: req.body.id }, function (err, window) { if (err) console.log(err) Window.findOne({ _id: window._id }).remove(function (err, data) { if (err) console.log(err); Account.findOneAndUpdate({ _id: req.user._id }, { $pullAll: { windows: [{ _id: window._id }] } }, function (err, user) { if (err) { console.log(err); } req.logIn(user, function (err) { if (err) return next(err) res.send({ success: true, window: req.body.id }); }) }); }) }); Как то это оч странно выглядит. Подскажите как это должно быть, плиз

Alexander
01.09.2016
14:21:18
http://telegram.wiki/tips:tdesktopcodesnippets

а то вырвиглазненько

Никита
01.09.2016
14:22:48
поправил :)

Alexander
01.09.2016
14:24:10
а что смущает?

Никита
01.09.2016
14:24:50
удаление как из коллеции окон так и из массива в поле аккаунта

по идее это же один объект

в массиве то только ссылка

KlonD90
01.09.2016
14:30:41
а я думал отсутствие промисов

Alexander
01.09.2016
14:31:17
это тоже

findOneAndRemove

это не прокатывает?

Vladimir
01.09.2016
14:31:36
@vkurchatkin Это кстати тот, в котором промисы не такими медленными сделали.
Меня не очень беспокоит производительность промисов

Страница 174 из 2748