Architecture for CPU intensive tasks with NodeJS & Socke

Architecture for CPU intensive tasks with NodeJS & Socket.io

本文关键字:amp Socke NodeJS with for CPU intensive tasks Architecture      更新时间:2023-09-26

我目前正在考虑一个NodeJS应用程序,在该应用程序中,我希望使用socket.io在多个客户端之间进行通信。

该应用程序将由数百个客户端组成,这些客户端都在谷歌地图上有一个位置。我希望服务器为每个客户端进行处理,这些客户端之间的半径为200米。如果我在nodeJS中纯用javascript来做这件事,这将给服务器带来巨大的负载,我担心这会导致服务器在处理这项巨大任务时暂停所有其他任务,这将导致服务器在执行cpu密集型任务时所有通信都会暂停。

我的问题是,如何使用NodeJS和Socket.io纯粹用于客户端之间的通信,并将CPU密集型任务转移到其他地方,以便在服务器执行CPU密集型的任务时不会中断客户端之间的通讯?

提前谢谢,原谅我的英语!

Bram

考虑使用pub/sub工作队列模型,在该模型中,socket.io服务器只与客户端交互,并将其数据持久化到数据库(redi或其他)中,一个单独的工作进程集群从队列中提取计算作业,计算结果并将其写回,客户端服务器可以将其传输到客户端。