如何在Node Js应用程序的多个实例之间同步对象

山汗

是否可以锁定Node JS应用程序中的任何对象。

是否有多个实例可供应用程序使用,某些功能不应并发运行。如果实例A函数完成,则应解锁该对象/键或某些标识符,而应用程序B实例应检查其解锁是否应运行某些功能。

任何对象或键都可用于识别功能的锁定和解锁。

如何在具有多个实例的NodeJS应用程序中执行此操作。

哪一个

如上所述,Redis可能是您的答案,但这实际上取决于您可用的资源。还有其他一些可能性可能会更简单一些,当然也可能没有那么强大,这也许可以解决问题。

  1. 如果设置正确,node-cache也可以解决问题。它远没有Redis这么强大,但从好的方面来说,它不需要太多的设置以及与环境的交互。

因此,存在用于内存锁定的Redis和节点缓存我应该提到有很多NPM软件包都可以进行缓存。取决于您所需要的内容,以及缓存的复杂程度。

但是,可以用更少的优雅方式来做自己想要的事情,尽管不够优雅不一定意味着更糟。

  1. 您可以使用基于JSON文件的系统,并为TTL锁定文件。锁定文件适当的锁定文件将完成任务。您可以在需要时从文件中读取信息,在需要时删除文件,并给它们提供TTL。基本上是一个缓存系统到磁盘。

内存系统显然更快。文件系统需要与存储系统一样多的代码计划。

  1. 还有另一种方式。这可能是最危险的一种,您将不得不对安全性和需求方面的后果进行认真思考。

Node.js有其自己的process.env最众所周知的是,只需编写process.env.foofoo将被声明为全局系统变量的位置,即可使系统全局变量可供所有人使用诸如.dotenv之类的程序包使您可以通过.env文本文件将其添加到系统变量中。因此,如果将文件sam = mongoDB放入,则在编写代码的地方process.env.sam将其解释为mongoDB。可以在此处设置大量系统范围的变量。

你可能会问,这样做有什么好处?这些是系统范围的变量,可以在运行中进行更改因此,如果需要锁定变量然后进行更改,这是一种简单的方法。当心这里的陷阱。一旦系统崩溃或所有进程停止并重新启动,您的环境变量将恢复为.env文件中的默认值。

此外,除非您运行的系统在AWS或Azure等上相对安全,否则我对向所有人开放.env文件不会感到安全。也有一种解决方法。您可以使用散列来加密所有变量,并将散列放入文件中。调用它时,请在实际请求使用full变量之前进行解密。

  1. 锁定和解锁的方式可能有很多,其中最重要的就是使用本机的Node.js结构。文件系统事件Crypto结合在一起但这需要对实际的Node.js库和结构有更深入的了解。

希望其中的一些帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JS-如何在同一Web应用程序的多个实例之间实时更新DOM?

如何在 node.js 中禁止同一应用程序的多个实例?

如何在Azure上的多个实例Web应用程序中同步服务器操作?

如何在多个Symfony实例(共享缓存池)之间共享应用程序缓存?

如何同步Node js应用程序,git和Heroku?

Java-Sockets:如何在多个应用程序之间发送和序列化对象

如何在应用程序启动时以sequqlize(Node.js)保存多个值

如何在 Angular 应用程序启动之间保留带有引用的 JS 对象?

如何在多个 Web 应用程序之间共享声明?

如何在Node.js中创建应用程序级缓存对象

如何在Java应用程序之间共享对象?

如何实现Java应用程序与Shell脚本之间的同步?

如何在应用程序部署在多个实例负载平衡器后面的同步Java中的公共资源

如何在 express.js 应用程序中的多个文件上使用套接字 io 实例

如何在Node.js服务器上的多个客户端之间同步数据

如何运行多个 WinForms 应用程序实例

如何防止我的应用程序的多个实例

如何在Gnome 3中单个应用程序的最近使用实例之间切换?

作为单个实例运行许多Node js应用程序

如何在node.js控制台应用程序中应用模块模式?

如何在节点应用程序中使用@ types / node

如何在Node应用程序中使用.graphqls文件?

如何在Go应用程序中创建多个Python实例

托管多个实例时如何在C#Web API应用程序中使用OAuth

如何在一个EC2实例上运行多个应用程序?

在对我的node.js应用程序的多个请求中重用AWS.S3的同一实例

如何在整个Spring MVC Web应用程序中创建对象的单个实例?

如何在android应用程序中保持不同对象实例的数量?

如何在Node.js服务器上部署Vue.js应用程序