node.js - 带有 Redis 消息队列的 NodeJS - 如何设置多个消费者(线程)

标签 node.js multithreading redis message-queue publish-subscribe

我有一个 nodejs 项目,它为外部 web 应用程序公开了一个简单的 rest api。此 webhook 必须每秒处理大量请求,并非常快速地向调用方返回 200 OK。为了实现这一点,我调查了一个 redis 简单队列,该队列与每个请求一起排队,稍后将异步处理(通过消费者线程)。

redis 简单队列似乎是完成此任务的简单方法 (https://github.com/smrchy/rsmq)

1) rsmq.receiveMessage() { ....... } 是阻塞方法吗?如果此处理程序很慢 - 它会影响我的服务器的性能吗?

2) 如果问题 1 的答案为真 - 是否建议将消息​​的消费提取到外部微服务? (一个专门的消费者)?在这种环境中创建多线程消费者的最佳实践是什么?

最佳答案

你可以使用redis提供的pubsub功能https://redis.io/topics/pubsub

您可以在订阅者不知情的情况下发布到各种 channel 。订阅者可以订阅他们想要的 channel 。

你好

关于node.js - 带有 Redis 消息队列的 NodeJS - 如何设置多个消费者(线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44562421/

相关文章:

javascript - 创建新对象并使用 fs.writeFile() 写入文件

git - 自动更新 package.json 版本

python - 我的线程正确吗?如果是,那么为什么代码不起作用?

c# - RemoveByPattern 方法不可用

python - Redis:如何从 Lua 脚本中 HMSET 字典?

Node.js、express 以及在 app.configure 中使用开发与生产

mysql - 错误: ER_BAD_FIELD_ERROR: Unknown column 'claimSystemId' in 'field list'

java - 无法找出异常

python - 什么时候线程?

json - Redis 字符串与 Redis 哈希来表示 JSON : efficiency?