我想知道node.js是否适用于服务器端应用程序,它实际上并不与浏览器进行通信,或者浏览器通信只是整个应用程序的另一部分,而不是用于管理.
这个想法很简单:
>服务器接收大量UDP流量,其中包含来自其他服务器的用户数据的短消息.
>对于每个消息,应用程序执行数据库查找并过滤掉不在白名单中的用户标识的消息.
>处理过滤的消息,导致另一个数据库更新或将数据发送到另一个服务器.
是这样的情况,学习node.js的好方案,或者与Java EE相比,它可能没有任何好处?
解决方法
免责声明:我为一家为node.js做出贡献并促进其使用的公司工作,所以我的意见可能有偏见.
正如其他人在评论中提到的那样,node.js应该适合你的场景.它实际上是人们使用node.js的最常见场景之一 – 从(可能是多个)源获取数据,执行少量cpu光处理并发回响应或存储结果.除非消息过滤非常昂贵,否则node.js实现可能会胜过J2EE版本.
原因是Node.js针对服务器大部分时间都在等待的解决方案进行了大量优化.等待客户端连接,等待数据库响应,等待光盘读/写,等待客户端读取响应等.
J2EE采用多线程,你有一个线程来处理每个请求,在这种情况下这是次优的.大多数线程都在等待,因此您无法并行运行大量代码,但仍需要支付上下文切换和更高内存使用的代价.
在使用node.js之前我会考虑一件事:您是否能够并允许将node.js部署到您的生产环境中?迁移到新平台会产生一些相关成本,运行应用程序的人员必须学习如何处理node.js应用程序.