Size: a a a

2017 August 14

VR

Vsevolod Rodionov in Node.js SPb
но в целом - идея очень крутая
источник

VR

Vsevolod Rodionov in Node.js SPb
джва года ждал что-то такое:)
источник

VI

Viktor Isaev in Node.js SPb
Vsevolod Rodionov
оу. пока что больно в прод с такими вводными, если честно.
А вы бы что предпочли, если не секрет?
источник

AM

Andrey Melikhov in Node.js SPb
Для общения есть же рэббит
источник

VR

Vsevolod Rodionov in Node.js SPb
1. возможность выбирать хранилище для общей очереди задач (naive js, redis). дополнительно к этому - какое-то api для отслеживания текущего статуса (список акторов, кто вызвал, что вызвало, где находится, в идеале - сколько ресурсов использовало). мне лично это очень нужно для прогнозирования и автоматического скейлинга (внешнее api, хуков или подписки какой-то достаточно): есть большое количество тяжелых вычислений (минуты, иногда часы), возможна резко возрастающая нагрузка, которую хотелось бы обрабатывать (развертывая/удаляя доп.сервера) за минуты простоя. Да, к сожалению, там нужны акторы, простой task queue не подходит.
2. api для автоматического добавления/удаления нод, в идеале - докер-контейнер, которому просто указываешь адрес сервера оркестрации, а дальше он сам в нем регистрируется, трекается, отваливается, респавнится и так далее. Но это идеальные условия, я понимаю
3. безопасный протокол общения между серверами (мастхэв, понятное дело)
4. возможность передавать structured clone (с автореферентными ссылками) и поддержкой классов для де/регидрации (условно, зарегистрировать класс User с методами toJSON/fromJSON). Но это уже хотелка, впрочем, ее сделать не очень сложно
источник

VI

Viktor Isaev in Node.js SPb
Vsevolod Rodionov
1. возможность выбирать хранилище для общей очереди задач (naive js, redis). дополнительно к этому - какое-то api для отслеживания текущего статуса (список акторов, кто вызвал, что вызвало, где находится, в идеале - сколько ресурсов использовало). мне лично это очень нужно для прогнозирования и автоматического скейлинга (внешнее api, хуков или подписки какой-то достаточно): есть большое количество тяжелых вычислений (минуты, иногда часы), возможна резко возрастающая нагрузка, которую хотелось бы обрабатывать (развертывая/удаляя доп.сервера) за минуты простоя. Да, к сожалению, там нужны акторы, простой task queue не подходит.
2. api для автоматического добавления/удаления нод, в идеале - докер-контейнер, которому просто указываешь адрес сервера оркестрации, а дальше он сам в нем регистрируется, трекается, отваливается, респавнится и так далее. Но это идеальные условия, я понимаю
3. безопасный протокол общения между серверами (мастхэв, понятное дело)
4. возможность передавать structured clone (с автореферентными ссылками) и поддержкой классов для де/регидрации (условно, зарегистрировать класс User с методами toJSON/fromJSON). Но это уже хотелка, впрочем, ее сделать не очень сложно
Пока есть только пункт 4. Понял, спасибо!
источник

VR

Vsevolod Rodionov in Node.js SPb
structured clone тоже есть?
источник

VR

Vsevolod Rodionov in Node.js SPb
а, еще забыл. п.5 - хотелось бы задавать возможность раскидывать задачи по random/round-robin/least connections
источник

VR

Vsevolod Rodionov in Node.js SPb
настраивать
источник

NK

ID:57684913 in Node.js SPb
кстати, оффтоп: будете выбирать amqp-библиотеку то увидите что из существует всего 3 под ноду, и все со своими косяками
источник

VR

Vsevolod Rodionov in Node.js SPb
вообще я свое что-то такое думал в свое время писать, так что если будет время (увы, вряд ли), попробую подключиться к проекту
источник

NK

ID:57684913 in Node.js SPb
поэтому, если вдруг это поймете, приглядитесь к этому транспорту - он неплох :) https://github.com/microfleet/transport-amqp
источник

VR

Vsevolod Rodionov in Node.js SPb
так а зачем aqmp, если на редисе можно накостылять то же самое с более внятным перформансом?
источник

VI

Viktor Isaev in Node.js SPb
Vsevolod Rodionov
structured clone тоже есть?
Ага. В Comedy это называется  custom marshalling. Добавлю в доку в ближайшее время.
источник

VR

Vsevolod Rodionov in Node.js SPb
круто
источник

NK

ID:57684913 in Node.js SPb
> так а зачем aqmp, если на редисе можно накостылять то же самое с более внятным перформансом?
для продакшна redis pub/sub не подходит по определенным причинам:
1) там кластер сложнее создать, а single point of failure это моветон
2) нет кучи полезных вещей раббита: dead-letter-exchange, например
3) ну и вообще он заточен все таки на KV
источник

NK

ID:57684913 in Node.js SPb
то есть там таки негарантированный pubsub
источник

VR

Vsevolod Rodionov in Node.js SPb
окей, мне на кролика много кто жаловался
источник

NK

ID:57684913 in Node.js SPb
кроме этого, RPC-стайл на редисе реализовать сложнее (больше логики придется имплементить в библиотеку)
источник

VR

Vsevolod Rodionov in Node.js SPb
и говорили, что на list редиса все куда удобнее делать
источник