Size: a a a

Node.js — русскоговорящее сообщество

2019 December 08

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
все сообщения в редисе широковещательные по сути своей, не как очереди... и все подписанные на канал получат сообщение, поэтому, если нужно послать сообщение конкретному получателю, достаточно просто кидать его в канал, который будут случать все подключенные "приложения", и если получатель не подключен к этому инстансу, просто игнорить, а если подключен - отправлять... делать прямо "обход" не нужно
источник

K

Kurakste in Node.js — русскоговорящее сообщество
Вот смотри есть сервис app1 - к нему подключаются по сокетам приложения. Например я начал его маштабировать и стало app1-1 и app1-2. Часть клиентов будет подключеной первому потоку часть ко второму. Дальше нужно отправить сообщение из  app2 в app1. Как понять к какому потоку подключаться? Перебирать все?
источник

K

Kurakste in Node.js — русскоговорящее сообщество
Ок, пойду редис покурю.
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
^~^ 🌁
Немного несвязанное с js. Но больше не к кому обратиться.

Задание: реализовать нативный байосовский классификатор спама.

Немного подробностей: вводится 3 текста. Спам. Не спам. Проверочное.
На анализе 2-х текстов определяется судьба третьего.

И вот главное что это для русского языка и одно слово в разных формах является одним словом.

Как можно определить, что это слово является собой, но в другой форме?
Попробовать разобрать его (слово). Отделить корень от суффикса и окончания
Есть исключения, но вообще суффиксов и окончаний в русском языке ограниченное количество
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
смотри
- каждый инстанс app1 подписывается на канал вида */app1...
- пусть у app1-1 подключены юзеры 1,3, а у app1-2 подключен юзер 2
- app2 шлет сообщение в канал app2/app1 для юзера 1

- все инстансы app1 получат это сообщение и далее проверяют своих юзеров
- если юзера-получателя нет, то просто игнорится сообщение (app2)
- если юзер-получатель есть, то выполняется нужная логика (app1)
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
pub/sub - редиса, это не очередь, это скорее широковещательные каналы, тут нет подтверждения доставки/получения, тут нет контроля целостности и т.п. удобных фишек очередей, но на самом деле его возможностей часто более чем достаточно ;)
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Kurakste
Но тогда будет несколько шин к которым подключены приложения(app1-1, ap1-2 и тд). Когда нужно будет отправить сообщение конкретному получателю нужно будет как-то организовывать обход всех доступных шин?
Можно pub/sub через Redis
источник

K

Kurakste in Node.js — русскоговорящее сообщество
Artem Zuev
смотри
- каждый инстанс app1 подписывается на канал вида */app1...
- пусть у app1-1 подключены юзеры 1,3, а у app1-2 подключен юзер 2
- app2 шлет сообщение в канал app2/app1 для юзера 1

- все инстансы app1 получат это сообщение и далее проверяют своих юзеров
- если юзера-получателя нет, то просто игнорится сообщение (app2)
- если юзер-получатель есть, то выполняется нужная логика (app1)
Точно. Вообще отдельно нужно поднять сервис под эти сообщения. Тогда будет по одной шине на каждый  app1, ap2, и туда можно широковещательные пакеты  слать, а обробатывать будет тот процесс у которого есть клиент с нужный айди. Спасибо. Сложилось.
источник

K

Kurakste in Node.js — русскоговорящее сообщество
я правильно понимаю, [].find -  это дешевая операция?
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Artem Zuev
pub/sub - редиса, это не очередь, это скорее широковещательные каналы, тут нет подтверждения доставки/получения, тут нет контроля целостности и т.п. удобных фишек очередей, но на самом деле его возможностей часто более чем достаточно ;)
А zeromq/nanomsg не дешевле и проще будет для такой задачи?
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Kurakste
я правильно понимаю, [].find -  это дешевая операция?
O(N)
источник

MK

Mihail Kuzmin in Node.js — русскоговорящее сообщество
Kurakste
я правильно понимаю, [].find -  это дешевая операция?
Линейный же, конечно
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
но в целом можно эмулировать "гарантию получения" следующим путем...
- отправитель генерит ключ через микротайм + префикс (к примеру) и создает в редисе простую запись по этому ключу с заданным временем жизни (чтобы все-таки было самоудаление)
- а в канал отправляет не само сообщение, а только ключ записи
- получатель, который должен обработать данное сообщение, после его прочтения, удаляет из редиса этот ключ

в случае сбоя и перезапуска считываются все ключи с этим префиксом, из них выбираются те, которые долны быть обработаны и выполняются директивы с удалением записи из редиса...
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
но это так - в качестве мазохизма, если вдруг малой кровью захочется помудрить, т.к. pub/sub достаточно надежная доставка, по крайней мере там, где я такое юзал, потери пакетов не ловил ни разу
источник

K

Kurakste in Node.js — русскоговорящее сообщество
Artem Zuev
но это так - в качестве мазохизма, если вдруг малой кровью захочется помудрить, т.к. pub/sub достаточно надежная доставка, по крайней мере там, где я такое юзал, потери пакетов не ловил ни разу
так то по идеи и обычных сокетов должно быть достаточно?
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Kurakste
так то по идеи и обычных сокетов должно быть достаточно?
я же говорю - в качестве мазохизма =)))
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Алексей Попов
А zeromq/nanomsg не дешевле и проще будет для такой задачи?
все может быть - я лишь предложил вариант с учетом простоты и функциональности
источник

OT

Oruj Tatiyev in Node.js — русскоговорящее сообщество
не подскажете, что возможно нужно вводить в данные поля, чтобы например случайно не залить в рут файлы проекта. насколько мне известно хранят в /var/www/project_dir или в каком то /html
источник

PN

Pavel Nakonechnyy in Node.js — русскоговорящее сообщество
Привет всем. Хотел узнать ваше мнение - вам был бы интересен ежедневный дайджест с подборкой новостей и статей, посвященных веб разработке?
источник

И

Илья | 😶 in Node.js — русскоговорящее сообщество
Pavel Nakonechnyy
Привет всем. Хотел узнать ваше мнение - вам был бы интересен ежедневный дайджест с подборкой новостей и статей, посвященных веб разработке?
Таких энтузиастов тут не ты один был
Новостей по ноде нет- только гитхаб с ченджлогом, не более
источник