当前位置: 首页 > 知识库问答 >
问题:

NodeJS/ERP-性能/可伸缩性

郭建华
2023-03-14

在我工作的公司,我们计划更新和重新编码我们12年的在线销售网络应用程序。

我们的客流量有点高;每天超过10万个销售订单意味着在web应用程序上每天至少有100万个交互。

我想用NodeJS作为web服务器,集成到我们的ERP系统中,运行在Oracle Exadata数据库上。

我的问题是:性能对我们来说是非常非常关键的,我不确定NodeJS的可伸缩性是否足以应付如此高的事务数。

我在网上读了一些博客,上面说一些非常非常大的公司已经在使用NodeJS,但是我不确定他们是把它作为主干系统还是只用于公司使用的一些较小的应用。

你能分享你的经验吗,如果可能的话,用包括交易计数在内的例子?

提前道谢!

共有1个答案

尚安平
2023-03-14

你为什么看Node.js?你还在考虑其他什么选择?为什么选择一个而不是另一个?你的团队有什么专长?

node.js具有相当高的可伸缩性,前提是您知道自己在做什么。您的负载中有多少是中间层的相对于数据库的?如果中间层有很多事情发生,那么您需要能够横向扩展。这里有几个需要考虑的高级事情:

  • 许多人使用Docker来容器化他们的应用程序,并使用Kubernetes扩展它们(尽管它们不是Node.js专用的)。
  • 您可能希望了解PM2,以保持node.js进程的运行。
  • 使用node-oracledb连接池。
  • 为安全性和性能使用绑定变量。
  • 如果您使用的是Kubernetes,并且每个容器都有自己的连接池,请查看是否使用DRCP。

考虑阅读本指南,使用node.js和Oracle数据库创建REST API,了解如何工作:https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/

 类似资料:
  • ScalingEntry SPI 名称 详细说明 ScalingEntry 弹性伸缩入口 已知实现类 详细说明 MySQLScalingEntry 基于 MySQL 的弹性伸缩入口 PostgreSQLScalingEntry 基于 PostgreSQL 的弹性伸缩入口

  • 背景 Apache ShardingSphere 提供了数据分片的能力,可以将数据分散到不同的数据库节点上,提升整体处理能力。 但对于使用单数据库运行的系统来说,如何安全简单地将数据迁移至水平分片的数据库上,一直以来都是一个迫切的需求; 同时,对于已经使用了 Apache ShardingSphere 的用户来说,随着业务规模的快速变化,也可能需要对现有的分片集群进行弹性扩容或缩容。 简介 Sha

  • 弹性伸缩组即根据业务需求和策略设置伸缩策略,实现虚拟机弹性扩容和收缩的功能。 弹性伸缩组即根据业务需求和策略设置伸缩策略,实现虚拟机弹性扩容和收缩的功能。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/主机/弹性伸缩组” 菜单项,进入弹性伸缩组页面。 使用流程 在主机模板页面中创建用于弹性伸缩组的主机模板,目前仅支持 云联壹云 和Azure平台的主机模板。 在弹性伸缩组页面

  • 弹性布局赋予弹性项目可伸缩性,可以改变其宽度/高度,以填充可用空间。这通过设置flex属性来实现。 下面这个例子演示flex: auto属性值的效果。除了给每个弹性项目添加了flex: auto外,其余和上一章节中的例子一样。 第一行有60px的剩余空间,而所有项目具有相同的伸缩性(Flexibility),所以第一行的3个项目将平均分配剩余的空间,也就是获得20px的额外宽度, 这样最终是占据1

  • 我正在用spark处理数据,它可以处理一天的数据(40G),但用OOM处理一周的数据失败了: null

  • 在 Kubernetes 平台上,有着基于 CPU 利用率进行负载的原生 API: Horizontal Pod Autoscaler。基于 Kubernetes,TiDB 4.0 起支持了全新的弹性调度算法。与之相应的,在 TiDB Operator 1.1 及以上版本中,TiDB 集群可以凭借 Kubernetes 平台本身的特性来开启弹性调度的能力。本篇文章将会介绍如何开启并使用 TidbC