node.js - 使用 Node 集群与 Redis Bull 后台进程来提高慢速端点性能

标签 node.js postgresql heroku redis

希望提高阻塞事件循环的慢端点的性能。使用由 Heroku 托管的 Postgres 数据库。

Heroku 的文档建议使用 Redis 实现后台作业以提高性能。这似乎需要在我们当前的 Postgres 数据库之上支付和设置 Redis,以及为工作进程本身设置 Bull。

https://devcenter.heroku.com/articles/node-redis-workers

这位评论者提出使用 Nose.js 集群作为可能的解决方案。

Using worker/background processes in node.js vs async call

我们目前没有使用 Redis,如果有更简单(更便宜)的解决方案,我宁愿实现它。使用 Node 工作线程会完成与使用 Bull 设置 Redis 相同的事情吗?很大一部分计算时间花在了这个端点上,我们已经努力通过索引和重组来进行改进。

最佳答案

看起来 Redis 有很大的优势:它将缓存数据和任何类型的错误/部署/等等。不会防止丢失数据,这是 node.js 工作人员无法做到的,要完成同样的工作,您需要使用 RabbitMQ 之类的东西来存储您的作业。如果您有时间和资源来重新实现 Redis,或者这对您来说是极端情况 - 尝试使用 worker,否则某些第 3 方工具会为您完成它而不会让您头疼,为什么您会遇到一些数据不一致的问题。此外,您不能使用 worker 并创建单线程应用程序并使用 kubernetes

自动生成它多次

关于node.js - 使用 Node 集群与 Redis Bull 后台进程来提高慢速端点性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56989104/

相关文章:

PostgreSQL 错误 : EXECUTE of SELECT . .. INTO 未实现

ruby-on-rails - Heroku 地理定位 >> 始终返回 "Seattle, WA"

javascript - 如何混合方法来强调而不在全局范围内引入它们?

Node.js server.listening 标志始终为 false

javascript - 更少的 CSS 服务器端,但没有 node.js?

ruby-on-rails-3 - Rails3 和 heroku image_path

heroku - MongoDB Atlas 连接工作但不在 Heroku 中显示数据

node.js - 如果 Node 关闭,如何在多个 Node 上处理 socketio

postgresql - 使用 pgAdmin III 导入 - 导出数据库

sql - Prisma PostgreSQL查询原始错误代码42P01表不存在