使用Redis pub / sub创建了太多线程

时间:2014-02-24 03:51:12

标签: ruby-on-rails redis publish-subscribe

我有一个Rails前端服务器,它接收来自用户的多个请求,然后将这些请求发送到后端服务器。

后端服务器异步处理请求,并在完成每个请求时通知前端服务器。

我使用Redis pub / sub在这两台服务器之间进行通信。特别是,对于来自用户的每个请求,我创建了一个订阅单个频道的新Redis实例(例如,scoring_channel)。

但是,如果我有100个用户同时发出请求,则每个Redis订阅者将拥有一个线程。

这会影响我的服务器性能吗?如果我对最大线程数有约束(例如,Heroku允许最多256个线程),我应该如何避免这个问题?

1 个答案:

答案 0 :(得分:1)

这不会影响服务器性能,因为redis从未被pub / sub阻止。 您应该在客户端使用非阻塞API,而不是阻止版本以减少线程数。