我有一个 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/