使用Trinidad當Jruby Server.

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

你可能感兴趣的:(server)