需要一些关于如何处理NodeJs中的操作的建议。我试图搜索东西,但找不到它,所以我想我会张贴在这里,以获得专家的反馈。
我们使用NextJS和NodeJS构建了一个电子商务平台。
我仍然需要进行测试和负载测试,以确定我们的性能,但我有点担心所有关于nodejs如何不是多线程语言的声明和声明,它是一个停止显示和bla bla的语言。所以,我来这里是为了得到你对我们正在做的事情的建议/反馈,不管我们做的是否好。这就是我所拥有的:
我会尝试用“订单处理”的例子来解释我的问题。因此,当我收到确认订单的请求时,这就是我要对请求进行身份验证的方法,并确认细节是否是完整的证明。
确认请求是通过jwt令牌进行身份验证的
向用户发出请求,确认用户是有效用户,并有权访问订单模块。
通过数据库验证商品的价格(因为我假设一个有效负载可能被黑客攻击,价格可能会被错误发送)
验证折扣是否从数据库中正确验证。
确认优惠券是否有效,贴现是否正确。
检查发送的奖励点是否正确--向用户服务发出请求。
我们的支付网关是Razor Pay,在这里,我们确认所发送的付款id是否为有效的付款id,并且从用户处收到的金额与要收取的总金额相匹配。
因此,这是我们现在在NodeJS做的一长串验证。
一次请求就会非常快。当我们深入到负载测试中时,我肯定会调整一下.但我目前的两难处境是,我们是否选择了正确的方法。NodeJS是否足够好来执行这种执行。我期望在6-7个月内不会超过200+并发用户,所以我不担心性能问题。我可以通过集群和对接来提高性能。我想知道我是否在NodeJS中做出了正确的选择。这不是一个很高的cpu密集型算法,只是一些“for循环”和一些数据库请求。
我应该将其保存在Node中,还是应该将此算法代码移动到用其他语言编写的另一个服务中,比如C++,或者可能是python。
现在很困惑。任何帮助都将不胜感激。
发布于 2019-06-19 05:49:46
Node.js可能是单线程的,但您所做的应该没有问题。它非常适合于水平缩放/集群,并且已经有了大量的节点模块来帮助您解决这个问题。
此外,Node.js是异步的,可以处理并发请求。
我还提供了一个关于如何缩放node.js的旧链接,其中列出了每个缩放方法可以帮助支持多少用户。长话短说,您可以使用垂直缩放、水平缩放、微服务(听起来像是您已经看到的)和自动化来轻松地扩展您的应用程序。Node.js应该工作得很好。
https://adrianmejia.com/how-to-scale-a-nodejs-app-based-on-number-of-users/
https://stackoverflow.com/questions/56659966
复制相似问题