1 rack middleware中间件:
文件位于app/racks/irack.rb
class Irack
def initialize(app)
@app = app
end
def call(env)
request = Rack::Request.new env
if request.path_info == '/i/kitty'
[200, {}, ['i kitty']]
else
@app.call(env)
end
end
end
修改config.ru,在run Blog::Application上面添加下面代码
require ::File.expand_path('../app/racks/irack.rb', __FILE__)
use Irack
2 rails3 metal :
文件位于app/controllers/hi_controller.rb
class HiController < ActionController::Metal
def kitty
self.response_body = ['hi kitty']
end
end
路由配置, 修改config/routes.rb,添加下面代码
get "hi/kitty"
3 rails controller :
在终端输入:
引用
rails g controller hello kitty
在kitty方法代码
render :text => "hello kitty", :layout => nil
测试,ab一千个请求
引用
ab -n 1000 http://localhost:3000/i/kitty
ab -n 1000 http://localhost:3000/hi/kitty
ab -n 1000 http://localhost:3000/hello/kitty
测试结果:
方式 | 一千请求总时间 | 平均一个请求的时间(ms) |
rack | 2.225 seconds | 2.225 |
rails3 metal | 8.875 seconds | 8.875 |
rails3 controller | 19.048 seconds | 19.048 |
从测试结果来说,rack中间件性能无疑是最好的,但难维护.
metal相对controller来说,在追求性能的时候,是一个不错的选择
分享到:
相关推荐
`weixin_rails_middleware` 是基于 Ruby 的 Rack 技术构建的,它能够插入到 Rails 应用的请求处理流程中。当收到微信服务器发来的请求时,中间件会自动处理这些请求,如验证签名、解析XML数据,并提供相应的响应。 ...
Rails中的Middleware(中间件)机制是构建在Rack之上的。Rack为Ruby Web应用提供了一个简单的接口,允许应用处理HTTP请求和响应。Rails中间件负责应用中各个层次的请求处理逻辑。书中介绍了如何查看和定制中间件,...
config.middleware.use Rails::Rack::Debugger config.middleware.use RailsFootnotes ``` 4. 重启Rails服务器以使更改生效。 5. 访问任何Rails应用页面,你将在页脚看到Footnotes链接,点击它们即可查看相关...
Rails :: Auth是一个灵活的库,旨在使用Rack Middleware进行身份验证(AuthN)和授权(AuthZ)。 它将,使用AuthN中间件首先验证凭据(例如X.509证书或cookie),然后通过使用这些凭据(例如(ACL))的单独AuthZ...
### Ruby on Rails中Rack中间件的基础学习教程 #### 一、Rack简介 Rack是一种轻量级的Web服务器接口规范,它定义了Web服务器和Web应用之间的接口,使得不同的Web应用能够运行在同一服务器上。Rack的重要性在于它...
Rails API文档是Ruby on Rails框架的核心参考资料,它详尽地阐述了Rails框架的各种组件、方法、类库和功能。Rails是一个流行的开源Web应用程序框架,基于模型-视图-控制器(MVC)架构模式,用于构建数据驱动的Web...
这提供了Rack中间件和Rails ActionController过滤器,用于将HTTP请求-响应对记录到HAR文件中。 安装 将此行添加到您的应用程序的Gemfile中: gem 'akita-har_logger' 然后执行: $ bundle install 或将其自己安装...
机架:: BearerAuth Rack :: BearerAuth是在Rack应用中使用承载身份验证的中间件。... use Rack :: BearerAuth :: Middleware do match path : "/foo" do | token | # validate token # AccessToken.where
config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', headers: :any, methods: [:get, :post, :options] end end ``` **9. 版本控制** 为了保持API的稳定性,通常会对其进行...
Apartment是Ruby社区中广泛使用的库,它为Rack(包括Rails)应用提供了简单的多租户支持。 Apartment gem允许你在单个数据库中为每个租户创建独立的数据空间,从而避免了维护多个独立数据库的复杂性和成本。这种...
Rack::UTF8Sanitizer 是一个 Rack 中间件用来清理 URI 和 HTTP 请求头部中包含的无效 UTF-8 字符。Rails 的使用方法:config.middleware.insert 0, Rack::UTF8SanitizerRack 的使用方法:use Rack::UTF8Sanitizer
config.middleware.use ExceptionNotifier::Rack ``` 这将插入一个中间件,当有未处理的异常发生时,该中间件会触发邮件通知。 此外,如果你的应用使用的是Rails 2.x版本,可能需要处理ActionMailer的配置,确保它...
离子+滑轨 这是一段代码,伴随着有关如何使Rails和Ionic完美配合播放的屏幕录像。 入门 创建一个文件夹来容纳应用程序的两面 ...config.middleware.insert_before 0, "Rack::Cors" do allow do origins '*' reso
Rails.application.config.middleware.use OmniAuth::Builder do provider :developer unless Rails.env.production? provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET'] end 标签:安全相关...
Rails::Rack::Logger ActionDispatch::ShowExceptions ActionDispatch::DebugExceptions ActionDispatch::RemoteIp ActionDispatch::Reloader ActionDispatch::Callbacks ActiveRecord::ConnectionAdapters::...
标题中的“用于检查应用程序健康状况的简单Rack中间件”是指一种基于Ruby的Web服务器接口——Rack。Rack是一个规范,它定义了Ruby web应用和web服务器之间的接口,允许不同的框架和服务器之间进行交互。这个中间件是...
预渲染 Rails 嵌入式 一个 rails gem 使用中间件来渲染 JavaScript Web 应用程序,无需安装其他服务即可动态调用 phantomjs。 概述 使用Prerender Rails Embedded可以避免在 rails 环境中安装新的 node.js 服务器,...
一种精简而简单的Rack中间件,它可以将请求从一台主机重定向到另一台主机。 这对于难以或无法通过Nginx / Apache配置(例如Heroku)实现的环境很有用。 我正在使用它来将流量从* .herokuapp.com子域重定向到自定义...
该应用程序在基本的 Rack层的顶部添加了一些不错的帮助程序。 它的目的是使Warden更易于在基于Rails的环境中使用,而无需像设计中那样繁重。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails_warden' ...
RailsAPI的目标是减少不必要的依赖,使你的API应用程序更加精简,性能更优。 在Ruby on Rails框架中,创建API通常涉及到以下关键知识点: 1. **资源(Resources)**:Rails中的资源是基于RESTful原则进行组织的,...