\Rainbows! is an HTTP server for sleepy Rack applications. It is based on Unicorn, but designed to handle applications that expect long request/response times and/or slow clients.
For Rack applications not heavily bound by slow external network dependencies, consider Unicorn instead as it simpler and easier to debug.
求解释
\彩虹!HTTP 服务器为困机架应用。它是基于 麒麟,而是设计用来处理应用程序,预计长 请求/响应时间和/或慢的客户端。
没有大量的约束外部网络缓慢机架应用 依赖性,考虑独角兽,而不是因为它更简单,更容易 调试。
expect long request/response times and/or slow clients. 处理请求/响应时间很长 and/or 慢的客户端?
别扭。。。。
是不是说 rainbows 是多线程的,在有大量外部依赖的情况下,也就是 IO bound 的应用里,多个线程可以复用 IO 阻塞的时间,所以比较适用。
如果你程序内有很多网络 IO 和磁盘 IO,Rainbows 才会有作用,不至于每个 request 因为 IO 卡在那,别的 request 进不来,CPU 运算无效,Ruby GIL
最近才把 Rainbows 从 production 换回 Unicorn 有几个问题
换成回 Unicorn,就比较简单了,一个 CPU 一个 Process 正在考虑,把慢的 IO 的 request 发到 Rainbows,其他的发到 Unicorn,不知道有谁这么用过