瞎扯淡 有没有可能用 ruby 写异步的架构

cassiuschen · 2013年10月05日 · 最后由 cassiuschen 回复于 2013年10月05日 · 5669 次阅读

最近一直在读 Node.js,其最大的特点就是异步 I/O,相信大家都很清楚。同时 Rails 饱受诟病的就是处理效率偏低,我刚刚在瞎想,如果能用 ruby 写异步不就好了…… 至于回调函数,不知道用代码块能不能实现,原则上这样肯定增加了开发效率和难度,但同时提高了效率,如果还能使用 gems,那岂不是很好……

不过说句公道话………虽然都在吐槽 rails 效率低………但我们选课系统也是纯 rails 做的…千人同时选课抽签赋分生成课表不在话下………至少我想一般的互联网应用也用不到超级大的吞吐量吧…

没有长连接的话,异步的速度优势很微弱的. 一些长连接场景如聊天,有现成的 erlang 之类的服务器可以用,速度更快. 另外一些场景可以用消息队列 + 后台任务 (如 resque), 客户端 polling 等技巧解决,速度差不了多少. twitter 就是用消息队列,前端的 rails 用 nonblock socket 发消息到队列中就结束请求了,改成异步或者换 nodejs 也不会有多少改进的. 非 web 遇到长连接的情况多一些,例如自定协议的游戏服务器,erlang 比 node 好使。

-- 你的程序慢爆了. -- 不是我的错,是... 是 rails 太慢!

-- 审美疲劳了,想换种语言写尝尝鲜. -- 现在 rails 不跑得好好的吗? -- rails 太慢!

看来是我重复造轮子了……

需要 登录 后方可回复, 如果你还没有账号请 注册新账号