Ruby 大家有在生产环境用过 Rails 以外的框架吗,用来干什么

levi0214 · 2021年03月03日 · 最后由 tablecell 回复于 2021年03月06日 · 1063 次阅读

我们自己的话,应用服务外有一些文件处理、数据处理是跑在 Sinatra 上的。以前也用过一段时间 Grape。

前一阵看到一个web frameworks benchmark,发现了一个叫 Agoo 的框架,性能看起来很夸张,在 8 核 16G 的机器上可以达到 48,848 req/s. 作者ohler55Oj(一个很快的 json gem)的作者,这哥们的特点是喜欢在 ruby gem 里面参杂一些 C 或 Go 的代码,让 gem 变快。

此外,我还一直很关注 Roda, 是 Sequel 作者 Jeremy Evans(我感觉是最靠谱的 ruby 开发者之一)在 Cuba 基础上改的一个小框架,比 Sinatra 快很多。代码极短,很好读,而且配有六十几个 plugin,该有的功能都有。我一度想用来代替 Rails,不过怕出问题耽误业务,就算了。

另外据我所知 Stripe 的应用服务都是跑在 Sinatra 上的,他们自己写了一个 ORM,前端是 Backbone。

好奇大家在生产环境用过哪些 Rails 以外的框架,用在哪,遇到过啥问题。

1 楼 已删除

在生产环境中用小众框架的风险就是如果 ruby 版本升级了,但是框架不维护了,然后代码就被限制在旧版本了 必须安装旧版本才能运行

没有用框架,单一服务,少量 API 直接用的 Rack + Sequel + Puma 撸,线上已稳定运行大几百天

zfjoy520 回复

👍 听起来就很快!

levi0214 回复

其实快与慢,与硬件、带宽、DB、业务逻辑复杂度、是否有同步外部调用等其他因素息息相关,不用一味追求快。 易开发、迭代、维护,系统资源占用少,易扩展就好。

三方依赖少,不用担心因依赖重大版本变更带来的 breaking changes, 也不用去排查某 gem 包的内存泄漏, 也不用引入什么,puma_worker_killer, unicorn-worker-killer 一类的,因为内存基本不会涨。

cuba, roda 都用过,非常适合做一些简单快速的 API 服务 因为足够简单,性能也够,所以即使停止维护也不太需要担心

开发效率和运行效率是成反比的

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