在真实环境中有过 误操作 kill, 测试环境有过 rm -rf 悲剧,不过还好及时发现,弥补了。。。
在真实环境中有过 误操作 kill, 测试环境有过 rm -rf 悲剧,不过还好及时发现,弥补了。。。
用 sinatra 的话,主要是其轻巧简便。 上面的 demo 是很简单的输出,但是业务的需求,需要你查询数据库,等等。 1:耗时间 2:占用资源 导致性能降低,最还的可能 程序 crash 针对这些,大家是如何解决的。 刚刚在 sinatra 加了 http 缓存 Rack::cache 然后对一个有业务数据接口进行压测:
ab -c 200 -n 10000 http://127.0.0.1:4567/api/test
添加 http Rack::cache 前的压测数据: Requests per second: 232.64 #/sec Time per request: 859.684 ms Time per request: 4.298 ms Transfer rate: 379.41 [Kbytes/sec] received
添加后的我压测了一下数据: Requests per second: 532.61 #/sec Time per request: 375.508 ms Time per request: 1.878 ms Transfer rate: 924.51 [Kbytes/sec] received
发现 程序处理能力 提高了一倍。。
Ps:httpcache 目前支持 get 方式 参考文献: http://stackoverflow.com/questions/626057/is-it-possible-to-cache-post-methods-in-http http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1
sinatra 不错。
不错。。。好东西分享,顶顶。。。
#1 楼 @windlx ,谢谢 我刚刚在 https://www.ruby-toolbox.com/categories/http_clients#httparty 看到了 httparty,里面 含有 各种 http client 同时又相应的 使用率比较。。。
谢谢大家回复,我打算先用 thin 尝试结合 nginx,可能以后做负载均衡。。。