Von技術 • 使用Trinidad當Jruby Server.
使用Trinidad當Jruby Server.
最近專案需求使用Jruby當Server. 原本採用Glassfish卻在最近莫名出現奇妙問題.
搜尋了一下,原來Glassfish-gem已經沒有繼續維護.
看來Trinidad是目前最好的選擇. 它輕,快,小.
也有幾個產品正在使用Trinidad了. 比如 :
Medioh , Abiquo , Dubai Coast
它的架設也是頗為簡單.
以下為Rack app的範例.修改Gemfile
gem 'trinidad' gem 'trinidad_daemon_extension'
設定trinidad.yml
address: localhost port: 9002 jruby_min_runtimes: 1 jruby_max_runtimes: 1 rackup: config/config.ru extensions: daemon: pid_file: tmp/trinidad.pid log: file: log/trinidad.log level: ALL
撰寫你的Rackup file
rackup = .ru 所以我們的rackup是在config/config.ru 打開編輯如下 :
require 'your_rack_app_location' run YourAppClass.new
修改Rackfile
namespace :server do task :start do begin sh 'jruby -S trinidad -f config/trinidad.yml --load daemon' rescue Exception=>e puts "App can't start #{e}" end end task :stop do begin pid="" File.open("tmp/trinidad.pid").each{|c| pid+=c } sh "rm -rf tmp/*" sh "kill -s SIGINT #{pid}" rescue Exception => e puts "Can't stop server as reason : #{e}" end end end
如此.便設定完成可以跑了.
啟動只要輸入rake server:start即可.
停止便是rake server:stop. :)
除了Trinidad. 我們還可以考慮另一款比較知名的TorqueBox. 然而它有3xxMb之大.
而”全包”便是它這麼肥大的原因. 我們可以用它來做所有工作,包含訊息交換(Event Queue), 工作排程(Schedule).. 等等
而Von最在意的Stable和Scalable. 在TorqueBox裡面可以獲得解決.
比如HA解決方案
TorqueBox架構圖如下 :
!TorqueBox架構圖
不過TorqueBox是Beta版. 而Von也還在瞭解. 等過幾天有心得再將它Po上來.
—Source
Rackup HowTo
Github Trinidad
Github Trinidad daemon