首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NodeJS性能问题-单线程

NodeJS性能问题-单线程
EN

Stack Overflow用户
提问于 2019-06-19 04:15:02
回答 1查看 95关注 0票数 1

需要一些关于如何处理NodeJs中的操作的建议。我试图搜索东西,但找不到它,所以我想我会张贴在这里,以获得专家的反馈。

我们使用NextJS和NodeJS构建了一个电子商务平台。

我仍然需要进行测试和负载测试,以确定我们的性能,但我有点担心所有关于nodejs如何不是多线程语言的声明和声明,它是一个停止显示和bla bla的语言。所以,我来这里是为了得到你对我们正在做的事情的建议/反馈,不管我们做的是否好。这就是我所拥有的:

  • 身份验证微服务:用于对请求进行身份验证,并确定用户是否有权访问特定模块
  • 支付小额服务:接受付款和退款。
  • 购物服务
  • MySQL与后遗症

我会尝试用“订单处理”的例子来解释我的问题。因此,当我收到确认订单的请求时,这就是我要对请求进行身份验证的方法,并确认细节是否是完整的证明。

确认请求是通过jwt令牌进行身份验证的

向用户发出请求,确认用户是有效用户,并有权访问订单模块。

通过数据库验证商品的价格(因为我假设一个有效负载可能被黑客攻击,价格可能会被错误发送)

验证折扣是否从数据库中正确验证。

确认优惠券是否有效,贴现是否正确。

检查发送的奖励点是否正确--向用户服务发出请求。

我们的支付网关是Razor Pay,在这里,我们确认所发送的付款id是否为有效的付款id,并且从用户处收到的金额与要收取的总金额相匹配。

因此,这是我们现在在NodeJS做的一长串验证。

一次请求就会非常快。当我们深入到负载测试中时,我肯定会调整一下.但我目前的两难处境是,我们是否选择了正确的方法。NodeJS是否足够好来执行这种执行。我期望在6-7个月内不会超过200+并发用户,所以我不担心性能问题。我可以通过集群和对接来提高性能。我想知道我是否在NodeJS中做出了正确的选择。这不是一个很高的cpu密集型算法,只是一些“for循环”和一些数据库请求。

我应该将其保存在Node中,还是应该将此算法代码移动到用其他语言编写的另一个服务中,比如C++,或者可能是python。

现在很困惑。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-19 05:49:46

Node.js可能是单线程的,但您所做的应该没有问题。它非常适合于水平缩放/集群,并且已经有了大量的节点模块来帮助您解决这个问题。

https://medium.com/iquii/good-practices-for-high-performance-and-scalable-node-js-applications-part-1-3-bb06b6204197

此外,Node.js是异步的,可以处理并发请求。

我还提供了一个关于如何缩放node.js的旧链接,其中列出了每个缩放方法可以帮助支持多少用户。长话短说,您可以使用垂直缩放、水平缩放、微服务(听起来像是您已经看到的)和自动化来轻松地扩展您的应用程序。Node.js应该工作得很好。

https://adrianmejia.com/how-to-scale-a-nodejs-app-based-on-number-of-users/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56659966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档