正在做一个APP的服务器端,外围的组建都是事件驱动的,只有内核还是顺序流程驱动。在内核里,要在每一次外围请求后遍历所有连接上的session的状态并做出相应处理,比如更改状态,分发通知。这样在连接数或业务逻辑增加后,内核在每一个请求周期所消耗的时间也就不断增加。由于node.js单线程的运行机制,内核就会成为瓶颈。考虑过用Cluster做负载均衡,但是由于请求后的业务逻辑流程比较碎片化,不容易移植到Cluster。且请求比较密集,担心“Experimental”状态中的Cluster会不稳定。
个人感觉在这种情况下使用其他的开发工具,使用传统的线程由操作系统进行任务分派或者使用协程自行协调任务会比较好。不过在node.js下没有这方面的经验,不知道是否合适。
请教各位,有没有比较好的方法解决这个问题?