- Реализовать на платформе Node.JS кластер, без использования сторонних библиотек и модуля Cluster. Разрешается использовать Redis.
- В момент запуска приложения какой-либо из node должен становиться master-node (кол-во node должно задаваться в конфигурационном файле).
- Master-node генерирует данные (рандомные числа) и отправляет их worker'ам на обработку (достаточно просто залоггировать полученные данные).
- Если выключить master-node, то главным должен становится любой другой worker.
- Сгенерированные данные должны быть обработаны единожды одним из worker'ов!
- При помощи библиотеки ReactJS сделать UI в котором в виде списка должны выводиться активные node с их статусами (master/worker)
и кол-во сгенерированных/обработанных сообщений (всего и отдельно для каждого node). Добавить возможность выключать любой из node через UI.
- Весь сетевой стек как для IPC так и для клиент-серверного взаимодействия (за исключением статики) выполнен без использования сторонних библиотек для того, чтобы показать понимание механизмов сетевого взаимодействия.
- В качестве сервера статики использован Express.js
- В качестве IPC использованы сокеты типа unix домен, реализованн на возможностях модуля Net
- Для кластеризации использован модуль child_process
web интерфейс
реализация модуля кластеризации
реализация IPC через TCP
код серверной части
код клиентской части