2015-10-14 4 views
2

В моем проекте я должен разработать систему уведомления в реальном времени. И я сделал это как изображение ниже.Уведомление в реальном времени с Kafka и NodeJS

real time notification with kafka and redis

Вы можете видеть, что я использовал Кафку как система очередей сообщений, и NodeJS строить WebSocket сервер и Кафку потребителей. Производители собирают данные уведомления и подталкивают их к Кафке. Потребители будут читать и обрабатывать данные от Kafka и переносить их на клиент через websocket, если эти данные принадлежат этому пользователю.

С архитектором выше, каждый пользователь сети откроет соединение с Websocket и создаст нового Потребителя. Это означает, что если в онлайн-режиме 100 тыс. Пользователей, у нас должно быть 100 тыс. Потребителей.

Итак, мой вопрос в том, что дизайн, приведенный выше, является правильным дизайном для системы уведомления в реальном времени? У вас есть другая идея? Есть ли проблема, если у меня есть 100K Consumer?

EDITED

Он не должен открывать слишком много потребителей. Он может работать с потребителем и веб-сайтами.

ответ

1

Ваш дизайн правильный, если вы хотите, чтобы все время с вашим клиентом подключалось, вам нужно будет оставить одинаковое количество client-websocket, так как есть количество клиентов ; но потребитель не должен увеличиваться в отношении подключенных клиентов; так как они могут быть разделены между разными client-websockets.

Это зависит от вашего приложения и способа его обработки.