N多客户机通过gprs每隔30秒传输一个300到400bytes数据包到服务器,通过nodejs写js代码(主要处理socketio和mysql)。 之后通过thinkphp(php server)+ easyui(webui)供用户访问交互。
nodejs只做负责后台数据处理,监听端口,socket数据收发,读写数据库。因为有成千上万设备往服务器的一个端口发数据,通过nodejs能处理过来吗?
nodejs做这样事情会不会吃力不讨好?
假设1W台设备每台设备30秒发一次,估算下1秒并发300多,应该处理的过来。实在不行就多用几个端口接收.
nodejs不是百万级链接的吗?:)
弄个Node集群cluster,多跑几个进程就好了
没问题的,我们游戏单进程下,2000个客户端,每隔5秒发一次消息都能承受,而且你还可以扩展进程来分担压力
@zhs077 尽量用一个端口,因为嵌入式终端一旦出去了,端口不能变化,
@jekywong 之前弄过小数据量的PUSH,现在终端数变多了,要实测才知道,
@hainee 集群cluster这个具体怎么操作,监听多端口吗?
@peiweippww 多谢,应该可以的
@Lishaojun 尽量加上cluster吧 一个进程挂了可以立马起一个 子进程可以共享一个port
如果你的数据包很小,但是频率又非常高,node.js适合,如果你的数据包很大,估计瓶颈会在带宽上
百万台设备发送消息------>nginx----->nodejs 其中nginx两台,nodejs两台,每台nodejs开启8个进程,每台服务器接收的日志数量从刚开始的10G,到昨天为止的32G(一共64G),目前没发现性能瓶颈问题
@snoopy 明白。
@wangchenyang 略吊。