
KlonD90
26.09.2016
08:05:04
Меня всем устраивает а чем не устраивает можно самому дописать :) тесты ну тут сложнее меня фикстуры т.К. часть логики прямо в базе написана типа уникальности. И все равно сложные запросы проще на sql. Hql подобный язык не помешал бы но не уверен какая-то бы у него была бы скорость по orm

equicolor
26.09.2016
08:07:01
Есть что-то наподоибие https://www.npmjs.com/package/acl, только нормальный?) Что-то он вообще странный какой-то

Николай
26.09.2016
08:08:34

Dima
26.09.2016
08:40:00

Google

KlonD90
26.09.2016
08:44:00

equicolor
26.09.2016
08:44:58
я видимо нашел одноименный npm модуль, а вы мне предложили-таки стек поменять?)

Никита
26.09.2016
09:33:55
а подскажите плиз, как организовать такое:
у меня фантом жс парсит массив урлов. и мне чтоб не ждать пока он весь массив спарсит, а после каждой страницы отправлять часть в респонс. то есть выводить на странице не всё сразу а по мере загрузки. Мне пока кроме сокетов на ум ничего не приходит

Cyber
26.09.2016
09:35:08
промисы?

Семен
26.09.2016
09:35:26
writeStream

Никита
26.09.2016
09:39:03
а ещё по socket.io вопросик. Есть страница. Как мне для каждого уникального пользователя сохранять сокет?
io.on('connection', socket => {
this.socket = socket;
console.log('a user connected');
});
сейчас так. и понятно что this.socket видят все. Может можно какой-нибудь уникальный id присваивать? чтоб было this[id] = socket
writeStream
writeStream вроде в файл? или можно и на респонс как-то?

Epsilonn
26.09.2016
09:40:54
стримы пайпятся куда угодно

Семен
26.09.2016
09:41:05
https://nodejs.org/api/stream.html

Сергей
26.09.2016
09:42:22
А для чего сохранять соединение с пользователем?

Никита
26.09.2016
09:43:06
чтобы емитить ему события
при парсинге массива ссылок:
this.socket.emit('url', item.url);

Google

Никита
26.09.2016
09:43:55
вот так делаю, чтоб пользователь видел какой урл парсится

Сергей
26.09.2016
09:46:01
Так может просто замыканием это передать?

Bogdan
26.09.2016
09:59:15
> чтоб было this[id] = socket
возникнут проблемы:
1. упадет процесс - потеряется все
2. не будет возможности масштабировать
как вариант через room & сохранять все активные rooms
http://socket.io/docs/rooms-and-namespaces/
конечно может возникнуть проблема активности - но тут все просто - нет событий на активность от пользователя - удалять из списка "активного"

KlonD90
26.09.2016
10:01:50
Отдельная комнатв
Иначе у тебя биндинг на сервер

Никита
26.09.2016
10:05:05
а как тогда запомнить в какой комнате пользователь?

Bogdan
26.09.2016
10:05:45
любая база

Никита
26.09.2016
10:06:00
ну это понятно :D я думал без бд обойтись

Bogdan
26.09.2016
10:07:34
redis запили прямо на сервер
через redis и масштабирование можно делать (в пару строк)
жрет мало

Никита
26.09.2016
10:37:44
а как в базе хранить тогда :) как идентиФИцировать пользователя то

Dmitry
26.09.2016
11:17:39
Сообщество, посоветуйте, как лучше реализовать хранение загруженных файлов? Интересует возможность масштабирования сервиса в будущем наиболее безболезненно

Ilya
26.09.2016
11:20:36
просто на тачке nginx с regexp и upstream тогда спасает

Eldar
26.09.2016
11:26:10
@Dekeey загрузка на какой-нибудь удаленный сервер и rsync на машины? o_O
Я лично хз как правильно =( Зависит от кол-ва серверов и тд

Dmitry
26.09.2016
11:32:55
@steppefox Спасибо. Интересно именно как это можно максимально просто масштабировать потом. Если просто грузить в папку, в базе писать имя файла и юзать rsync, при большом кол-ве файлов боюсь в inodes упереться

Google

KlonD90
26.09.2016
11:33:19
куку ему сгенерить

Eldar
26.09.2016
11:34:39
ну зависит от кол-ва файлов все же =(( Если у тебя какой-то контентный сервис, с большим количеством файлов, то возможно лучше вынести файлы на какой-нибудь файловый CDN и раздавать такую статику с него

Dmitry
26.09.2016
11:36:47
что-то вроде rackspace заюзать? Сервис - петпроджект, с возможностью загрузки музыки, на будущее хотелось бы архитектуру продумать, в случае чего, спасибо еще раз

Maksim
26.09.2016
11:40:41
что-то вроде rackspace заюзать? Сервис - петпроджект, с возможностью загрузки музыки, на будущее хотелось бы архитектуру продумать, в случае чего, спасибо еще раз
Ну либо заюзать что-то вроде S3, или заводить свою ферму помоек и rsynкать всё не надо, т.к. есть база - шардируй по какому-нибудь половому признаку и имей 1 дубль по rsync например. Если не хочется вообще продумывать, то можно заюзать у MongoDB - GridFS, но тогда обязательно, без исключения используй CDN, т.к. GridFS даёт возможность масштабировать, но очень дорого, если сравнивать с тем что я описывал выше.

Eldar
26.09.2016
11:42:33
Вообще масштабирование статики довольно большая тема *__*
Это довольно серьезная архитектурная админская задача)

Evgeny
26.09.2016
11:43:09
Тю на вас, где тут серьезность?

Maksim
26.09.2016
11:45:44
Вообще я бы уже советовал присматриваться к peer-to-peer аля btsync / ipfs + шардинг по какому-нибудь признаку в базе. Но сам в продакшене такой финт с ptp не делал.

Roman
26.09.2016
11:47:36

Eldar
26.09.2016
11:48:52
@pragus ну ок ок, просто я видел как этим занимались админы ;D сам я не разруливал статику

Maksim
26.09.2016
11:48:57
btsync - тормоз и жрёт процессор
Но если делать по 1 дублю, то как бы лучше чем rsyncать, меньше подводных же? Если конечно синхронизировать всё и везде, то да, конечно дорого.

Roman
26.09.2016
11:49:07

Maksim
26.09.2016
11:52:07

Roman
26.09.2016
11:53:44

Dmitry
26.09.2016
11:56:28
Парни, дичайшее спасибо всем за советы, думаю проще, наверное, заюзать готовые сервисы хранения, ибо не админ

Vladimir
26.09.2016
11:57:33
Тогда S3

Roman
26.09.2016
12:05:01

Vladimir
26.09.2016
12:11:12
Всмысле?

Google

Roman
26.09.2016
12:23:52

Ilya
26.09.2016
12:24:02
вут?

Roman
26.09.2016
12:24:38
вут?
Вот у меня есть сервер, я хочу s3. Что надо сделать?

Ilya
26.09.2016
12:25:05
s3 в данном контексте как я понимаю это amazon s3

KlonD90
26.09.2016
12:25:07
заплатить амазону тот тебе даст апишечку

Vladimir
26.09.2016
12:25:25
В чем смысл подъеба? все знают, что такое s3

Roman
26.09.2016
12:25:27

Admin
ERROR: S client not available

Roman
26.09.2016
12:25:53
У амазона есть в рф точки присутствия?

Vladimir
26.09.2016
12:25:58
Нет

Ilya
26.09.2016
12:26:13
А файлы являются персональными данными?=)

Roman
26.09.2016
12:27:14
Отлично, т.е. предлагается ~ 60-130ms rtt и бегать в Европу/штаты

Oleg
26.09.2016
12:27:41
Вы знаете что такое UTM-метки?
Да – 95
??????? 70%
Нет – 40
??? 30%
? 135 people voted so far. Poll closed.

Vladimir
26.09.2016
12:28:18

Roman
26.09.2016
12:29:01
Ну да
Это ппц медленно. Особенно на мобильном инете.

Vladimir
26.09.2016
12:29:35
Всмысле “медленно”? Это latency, какая разница мобильный-не мобильный
Тем более я думаю до европы не 60

Roman
26.09.2016
12:30:40

Vladimir
26.09.2016
12:30:48
Ок, может быть
Но в России все равно ничего нет

Google

Vladimir
26.09.2016
12:31:06
Такого же плана

Roman
26.09.2016
12:31:07
До Праги
Если уж про cdn

Vladimir
26.09.2016
12:32:27
У s3 просто много готового тулинга, основное преимущество
https://www.ngenix.net/network/ru
Вот и толку тогда?

Roman
26.09.2016
12:33:29

Vladimir
26.09.2016
12:33:37
Ну он есть, да
Кто его готовит SaaS в РФ?

Roman
26.09.2016
12:35:55
менее 50 ms

Vladimir
26.09.2016
12:36:28
Речь о том чтобы не админить самому

Roman
26.09.2016
12:42:22

Evgeny
26.09.2016
12:42:56
у себя хранить их можно в бекап-стораджах

Vladimir
26.09.2016
12:45:26

Кисик
26.09.2016
12:55:30
Сори за оффтоп