我有一个Rails前端服务器,它接收来自用户的多个请求,然后将这些请求发送到后端服务器。
后端服务器异步处理请求,并在完成每个请求时通知前端服务器。
我使用Redis pub / sub在这两台服务器之间进行通信。特别是,对于来自用户的每个请求,我创建了一个订阅单个频道的新Redis实例(例如,scoring_channel
)。
但是,如果我有100个用户同时发出请求,则每个Redis订阅者将拥有一个线程。
这会影响我的服务器性能吗?如果我对最大线程数有约束(例如,Heroku允许最多256个线程),我应该如何避免这个问题?
答案 0 :(得分:1)
这不会影响服务器性能,因为redis从未被pub / sub阻止。 您应该在客户端使用非阻塞API,而不是阻止版本以减少线程数。