英文:
Share token between different Node.js processes - best approach?
问题
Node.js v16.20.0
基于 pm2 或 Docker 的进程处理,包括 4-16 个进程
在我们的用例中,我们希望从我们的服务器应用程序与 Rest/JSON API(例如 openverse、wikipedia、flickr、pixabay 等)建立 API 连接。
通过使用 clientId/clientSecret 进行请求,我们会获得一个有效期约为一小时的令牌。然后,可以使用此令牌来进行具体的搜索或 CRUD 操作。
我们希望令牌的请求由最多一个 Node.js 进程执行,以及在令牌已过期时重新获取操作。这是因为一些 API 不喜欢多个客户端并行地多次请求令牌。
您对如何在多个 Node.js 进程之间共享此类令牌有什么方法?其他进程可能需要等待令牌被获取。
- Redis?
- worker_threads?
- LevelDB?
- 数据库(基于 SQL 等)?
谢谢和亲切的问候。
英文:
Node.js v16.20.0
pm2 OR docker based process handling with 4-16 processes
In our use case, we want to establish an API connection from our server app to a Rest/JSON API (e.g. openverse, wikipedia, flickr, pixabay, etc).
For the request using a clientId/clientSecret, we get a token that is valid for about one hour. This token can then be used to make concrete requests such as searches or CRUD operations.
We want the request for a token to be carried out by maximum one Node.js process, as well as the refetch operation if a token has expired. We want this because some APIs don't like it when tokens are requested multiple times in parallel for the same client.
What is your approach to share such a token between multiple Node.js processes? Other processes may have to wait until a token has been fetched.
- Redis ?
- worker_threads ?
- LevelDB?
- database (SQL-based, etc.)?
Thanks and kind regards
答案1
得分: 0
我们最终决定使用Redis和Node-Redis作为一个包。效果很好。与此同时,我们也使用Redis进行缓存。
[1] https://www.npmjs.com/package/redis
英文:
We finally decided to use Redis and Node-Redis [¹] as a package. Works great. In the meantime we also use Redis for caching.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论