我不明白!
机架:http ://rack.rubyforge.org/
Rails 金属:http ://weblog.rubyonrails.org/2008/12/17/introducing-rails-metal
看了两篇文章,眼睛都模糊了。这两个组件如何关联?例子会很棒吗?
我不明白!
机架:http ://rack.rubyforge.org/
Rails 金属:http ://weblog.rubyonrails.org/2008/12/17/introducing-rails-metal
看了两篇文章,眼睛都模糊了。这两个组件如何关联?例子会很棒吗?
Rack 是一个非常轻量级的规范,Ruby Web 服务器可以实现。它是中间件,这意味着它位于 Web 服务器(例如,Passenger)和 Rails 之间。
Rails Metal 是一种在您需要最高性能时使用 Rails 处理 HTTP 请求的方法。它实际上将您带入了金属并绕过了标准 Rails 的请求/响应周期为您提供的所有正常功能(以及开销)。从技术上讲,Rails Metal 是 Rack 处理程序的实现。
你可能会发现这两个 Railscasts 主题信息丰富:
您可以使用以下方法获取 Rails 应用程序的 Rack 中间件堆栈列表rake middleware
Rack 是一个通用的 Ruby API/抽象层,它允许不同的应用程序框架集成到 Web 服务器。
Rails Metal 是 Rails 对 Rack 处理程序的实现。它不仅包括一个调用 Rails 的处理程序,而且还公开了自己的 API,使您可以更轻松地创建自己的处理程序来访问 Web 服务器并绕过核心 Rails。
在Jesse Newland 的网站上有一个很好的讨论和一些例子:
因此,从本质上讲,Rails Metal 是 Rails 新的 Rack 中间件支持的薄包装器。机架中间件是非常强大的东西:独立处理请求或与其他中间件协同处理请求的独立于框架的组件。
除了其他人所涵盖的差异之外,我想指出,Rack 应用程序可以是中间件或最终端点,而ActionController::Metal
始终是端点而不是中间件。