使用Kafka和NodeJS实现实时通知

4
在我的项目中,我需要设计一个实时通知系统。我已经按照下面的图片进行了设计。

real time notification with kafka and redis

您可以看到,我使用Kafka作为队列消息系统,使用NodeJS构建Websocket服务器和Kafka消费者。生产者将收集通知数据并将其推送到Kafka。消费者将从Kafka读取和处理数据,并通过websocket将其推送到客户端,如果该数据属于该用户,则会推送。
通过上述架构,每个在线用户都将打开一个Websocket连接并创建一个新的消费者。这意味着如果有100K个在线用户,我们必须拥有100K个消费者。
因此,我的问题是,上述设计是否是实时通知系统的正确设计?您有任何不同的想法吗?如果我有100K个消费者,是否会出现任何问题?
编辑:它不应该打开太多的消费者。它能够与一个消费者和Websockets一起工作。
1个回答

1
你的设计是正确的,如果你想始终与每个客户端保持连接,则必须保持与客户端数量相同的client-websocket数量;但消费者不必随着连接的客户端增加而增加;因为它们可以在不同的client-websockets之间共享。这取决于你的应用程序和你想要处理它的方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接