【发布时间】:2016-01-12 20:00:15
【问题描述】:
在我的项目中,我必须设计一个实时通知系统。我按照下图做了。
您可以看到我使用 Kafka 作为队列消息传递系统,使用 NodeJS 构建 Websocket Server 和 Kafka Consumers。 生产者将收集通知数据并将其推送到 Kafka。如果数据属于该用户,消费者将读取和处理来自 Kafka 的数据并通过 websocket 将其推送到客户端。
通过上面的架构师,每个在线用户都会打开一个 Websocket 连接并创建一个新的 Consumer。这意味着如果有 10 万用户在线,我们必须有 10 万消费者。
所以我的问题是上面的设计是实时通知系统的正确设计吗?你有什么不同的想法吗?如果我有 100K 消费者,有什么问题吗?
已编辑
它不应该打开太多的消费者。它能够与消费者和 websockets 一起使用
【问题讨论】:
标签: node.js websocket notifications apache-kafka consumer