使用NodeJS和&amp ;;的CPU密集型任务的体系结构Socket.io

时间:2015-04-07 13:45:20

标签: javascript node.js sockets socket.io cpu

我正在考虑一个NodeJS应用程序,我想在其中使用socket.io进行多个客户端之间的通信。

该应用程序将包含数百个客户端,这些客户端都在谷歌地图上有一个位置。我希望服务器为每个客户端处理,这些客户端彼此相距200米。如果我在nodeJS中以javascript完成这一切,这会给服务器带来巨大的负担,我担心这会导致服务器暂停所有其他任务,同时处理这个巨大的任务,这将导致所有通信都是在服务器执行cpu密集型任务时暂停。

我的问题是,如何将NodeJS与Socket.io完全用于客户端之间的通信,并将更多的CPU密集型任务转移到其他地方,以便在服务器执行cpu密集型任务时不停止客户端之间的通信? / p>

提前致谢并原谅我的英语!

的Bram

1 个答案:

答案 0 :(得分:2)

考虑使用pub / sub工作队列模型,其中socket.io服务器只与客户端交互并将其数据持久保存到数据库(redis或其他),并且单独的工作进程集群将计算作业从队列中拉出,计算结果,并将其写回,客户端服务器可以将它们传输到客户端。

相关问题