node.js – 使用Kafka和NodeJS的实时通知

在我的项目中,我必须设计一个实时通知系统.我做了如下图所示.

《node.js – 使用Kafka和NodeJS的实时通知》

您可以看到我使用Kafka作为队列消息传递系统,NodeJS使用了构建Websocket服务器和Kafka消费者.
制作人将收集通知数据并将其推送到Kafka.消费者将从Kafka读取和处理数据,并通过websocket将其推送到客户端(如果该数据属于该用户).

通过上面的架构师,每个在线用户都将打开一个Websocket连接并创建一个新的Consumer.这意味着如果有100K用户在线,我们必须拥有100K消费者.

所以我的问题是上面的设计是一个实时通知系统的正确设计?你有什么不同的想法吗?如果我有100K消费者,有什么问题吗?

EDITED

它不应该打开太多的消费者.它能够与消费者和websockets一起使用

最佳答案 您的设计是正确的,如果您希望始终与您的每个客户连接,那么您将必须保留与客户数量相同数量的客户端 – websocket;但是,对于连接的客户,不必增加消费者;因为它们可以在不同的客户端 – websockets之间共享.

这取决于您的应用程序以及您希望如何处理它.

点赞