Как передавать сообщения между ядрами процессора в узле?

#node.js #hook.io

#node.js #hook.io

Вопрос:

У меня есть приложение, над которым я работаю, которому необходимо синхронизировать таймер между несколькими ядрами (используя кластер).

Есть ли эффективный надежный способ связи между ядрами? Я посмотрел на Redis, но, похоже, он больше ориентирован на взаимодействие клиент-сервер. Я был бы благодарен за любые советы.

Спасибо,

Ответ №1:

Вам нужно взглянуть на hook.io:

крюк.io создает распределенный node.js Отправитель событий, который работает в кросс-процессном / кросс-платформенном / кросс-браузерном режиме. Думайте об этом как о шине событий в реальном времени, которая работает везде, где поддерживается JavaScript.

Комментарии:

1. Все хорошие ответы. Я собираюсь использовать hook. ввод-вывод, поскольку он очень хорошо документирован.

2. Слишком плохой хук. io умер… Кто-нибудь нашел замену?

Ответ №2:

Посмотрите на службы очереди сообщений, такие как ZeroMQ. Они имеют преимущество в поддержке как локальных IPC, так и TCP-транспортов, так что вы готовы к горизонтальной масштабируемости за пределы ядер, доступных на одном облачном узле. zmq имеет привязку к узлу.

Комментарии:

1. RabbitMQ тоже потрясающий. Также pub / sub с redis или просто socket.io

2. Использование ZeroMQ — очень плохая идея, производительность отстой. Это связано с оболочкой JS.

Ответ №3:

Взгляните на https://github.com/substack/dnode Вы можете использовать его для связи между процессами nodejs.