成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在tomcat上配置jruby on rails

開(kāi)發(fā) 后端
本文詳細(xì)講解了如何在tomcat上配置jruby on rails。

本文介紹了jruby on rails在tomcat的配置實(shí)踐。由于要在tomcat上部署3個(gè)rails項(xiàng)目,暫時(shí)使用的版本是rails1.2.3,jdk6 ,jruby1.1.2,tomcat5.5.12

用了一臺(tái)非常爛的測(cè)試機(jī)器(p4 2.8  1g),當(dāng)然,真實(shí)服務(wù)器比這個(gè)要好多了

1.使用rails開(kāi)發(fā)應(yīng)用之后,使用goldspike打包,不過(guò)我老是不成功,所以基本都手動(dòng)添加,需要的東西主要是

Web-inf下面的lib:

Java代碼

  1. jruby-complete-1.1.2.jar     
  2. mysql-connector-java-5.1.6-bin.jar     
  3. goldspike-1.6.jar     
  4. commons-pool-1.3.jar     
  5. activation-1.1.jar   

web-inf下面的gems,從你的ruby gems那里copy過(guò)來(lái)就可以了

主要有rails,另外由于使用mysql,所以有

Java代碼

  1. activerecord-jdbc-adapter-0.8    
  2. activerecord-jdbcmysql-adapter-0.8    
  3. jdbc-mysql-5.0.4    
  4. jruby-openssl-0.2.3 //可選   

2.修改environment.rb,不過(guò)貌似rails2是不需要配置這個(gè)的

Ruby代碼

  1. if defined?(JRUBY_VERSION)     
  2.   require 'rubygems'    
  3.   gem 'activerecord-jdbc-adapter'    
  4.   require 'jdbc_adapter'    
  5. end   

還有database.yml,使用jndi

Ruby代碼

  1. production:  
  2.   adapter: jdbc  
  3.   jndi: java:comp/env/jdbc/gdpolice 

最后是production.rb

Ruby代碼

  1. config.cache_classes = true    
  2. config.action_controller.consider_all_requests_local = false    
  3. config.action_controller.perform_caching             = true    
  4. config.action_view.cache_template_loading            = true    
  5. config.breakpoint_server = false   

3.配置web.xml

Xml代碼

  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"    
  3.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  4.   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"    
  5.   version="2.4">    
  6.     <context-param>    
  7.         <param-name>jruby.standalone</param-name>    
  8.         <param-value>true</param-value>    
  9.     </context-param>    
  10.     <context-param>    
  11.         <param-name>rails.env</param-name>    
  12.         <param-value>production</param-value>    
  13.     </context-param>    
  14.     <context-param>    
  15.         <param-name>files.default</param-name>    
  16.         <param-value>rails</param-value>    
  17.     </context-param>    
  18.          
  19.     <!-- 設(shè)置jruby線(xiàn)程池參數(shù) -->    
  20.     <context-param>    
  21.         <param-name>jruby.pool.maxActive</param-name>    
  22.         <param-value>10</param-value>    
  23.     </context-param>    
  24.     <context-param>    
  25.         <param-name>jruby.pool.maxWait</param-name>    
  26.         <param-value>50000</param-value>    
  27.     </context-param>    
  28.          
  29.     <!-- 其他優(yōu)化設(shè)置:objectspace和jit參數(shù),設(shè)置session為db方式 -->    
  30.     <context-param>    
  31.         <param-name>jruby.objectspace.enabled</param-name>    
  32.         <param-value>false</param-value>    
  33.     </context-param>    
  34.     <context-param>    
  35.         <param-name>jruby.jit.threshold</param-name>    
  36.         <param-value>0</param-value>    
  37.     </context-param>    
  38.     <context-param>    
  39.         <param-name>jruby.session_store</param-name>    
  40.         <param-value>db</param-value>    
  41.     </context-param>    
  42.          
  43.     <servlet>    
  44.         <servlet-name>rails</servlet-name>    
  45.         <servlet-class>org.jruby.webapp.RailsServlet</servlet-class>    
  46.     </servlet>    
  47.     <servlet>    
  48.         <servlet-name>files</servlet-name>    
  49.         <servlet-class>org.jruby.webapp.FileServlet</servlet-class>    
  50.     </servlet>    
  51.     <listener>    
  52.         <listener-class>org.jruby.webapp.RailsContextListener</listener-class>    
  53.     </listener>    
  54.     
  55.     <!-- Allow all requests to go to the files servlet first -->    
  56.     <servlet-mapping>    
  57.         <servlet-name>files</servlet-name>    
  58.         <url-pattern>/</url-pattern>    
  59.     </servlet-mapping>    
  60.              
  61.     <resource-ref>    
  62.         <res-ref-name>jdbc/gdpolice</res-ref-name>    
  63.         <res-type>javax.sql.DataSource</res-type>    
  64.         <res-auth>Container</res-auth>    
  65.     </resource-ref>    
  66. </web-app>    
  67.  
  68. <?xml version="1.0" encoding="UTF-8"?> 
  69. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
  70.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  71.   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
  72.   version="2.4"> 
  73.     <context-param> 
  74.         <param-name>jruby.standalone</param-name> 
  75.         <param-value>true</param-value> 
  76.     </context-param> 
  77.     <context-param> 
  78.         <param-name>rails.env</param-name> 
  79.         <param-value>production</param-value> 
  80.     </context-param> 
  81.     <context-param> 
  82.         <param-name>files.default</param-name> 
  83.         <param-value>rails</param-value> 
  84.     </context-param> 
  85.       
  86.     <!-- 設(shè)置jruby線(xiàn)程池參數(shù) --> 
  87.     <context-param> 
  88.         <param-name>jruby.pool.maxActive</param-name> 
  89.         <param-value>10</param-value> 
  90.     </context-param> 
  91.     <context-param> 
  92.         <param-name>jruby.pool.maxWait</param-name> 
  93.         <param-value>50000</param-value> 
  94.     </context-param> 
  95.       
  96.     <!-- 其他優(yōu)化設(shè)置:objectspace和jit參數(shù),設(shè)置session為db方式 --> 
  97.     <context-param> 
  98.         <param-name>jruby.objectspace.enabled</param-name> 
  99.         <param-value>false</param-value> 
  100.     </context-param> 
  101.     <context-param> 
  102.         <param-name>jruby.jit.threshold</param-name> 
  103.         <param-value>0</param-value> 
  104.     </context-param> 
  105.     <context-param> 
  106.         <param-name>jruby.session_store</param-name> 
  107.         <param-value>db</param-value> 
  108.     </context-param> 
  109.       
  110.     <servlet> 
  111.         <servlet-name>rails</servlet-name> 
  112.         <servlet-class>org.jruby.webapp.RailsServlet</servlet-class> 
  113.     </servlet> 
  114.     <servlet> 
  115.         <servlet-name>files</servlet-name> 
  116.         <servlet-class>org.jruby.webapp.FileServlet</servlet-class> 
  117.     </servlet> 
  118.     <listener> 
  119.         <listener-class>org.jruby.webapp.RailsContextListener</listener-class> 
  120.     </listener> 
  121.  
  122.     <!-- Allow all requests to go to the files servlet first --> 
  123.     <servlet-mapping> 
  124.         <servlet-name>files</servlet-name> 
  125.         <url-pattern>/</url-pattern> 
  126.     </servlet-mapping> 
  127.     
  128.     <resource-ref> 
  129.         <res-ref-name>jdbc/gdpolice</res-ref-name> 
  130.         <res-type>javax.sql.DataSource</res-type> 
  131.         <res-auth>Container</res-auth> 
  132.     </resource-ref> 
  133. </web-app> 

注明幾點(diǎn):

jruby.standalone為false的時(shí)候,需要定義jruby.home

rails.env就對(duì)應(yīng)rails的那幾種環(huán)境

jruby線(xiàn)程池有幾個(gè)參數(shù)(需要根據(jù)情況來(lái)配置),如下:

Java代碼

  1. jruby.pool.maxActive #最大運(yùn)行時(shí)數(shù)量,默認(rèn)4  
  2. jruby.pool.minIdle #最小運(yùn)行時(shí)數(shù)量 默認(rèn)2  
  3. jruby.pool.initialSize #運(yùn)行時(shí)初始數(shù)量 默認(rèn)jruby.pool.minIdle 的值  
  4. jruby.pool.checkInterval #檢查是否需要更多運(yùn)行時(shí)之間的毫秒數(shù) 默認(rèn)1000  
  5. jruby.pool.maxWait #最長(zhǎng)等待時(shí)間 默認(rèn)3000 

jruby.objectspace.enabled貌似默認(rèn)就是false

jruby.jit.threshold設(shè)置使用jit編譯的方法數(shù)量的閥值,為0表示全部使用jit

jruby.session_store為db表示使用rails的db方式保存session

resource-ref只是針對(duì)5..5或以下,6.0不需要這個(gè)鬼東西

4.配置tomcat

server.xml(其實(shí)跟普通的web應(yīng)用沒(méi)什么區(qū)別,就是配置數(shù)據(jù)源什么什么的,不說(shuō)了)

另外有需要注意的是:

Jruby占用的內(nèi)存,cpu相當(dāng)驚人,所以要做好準(zhǔn)備,需要配置好tomcat的內(nèi)存參數(shù)(具體還是要配合機(jī)器)

Java代碼

  1. #catalina.sh     
  2. JAVA_OPTS="$JAVA_OPTS -server -Xms512m -Xmx512m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=256m"    
  3. #catalina.bat     
  4. set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx512m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=128m    
  5.  
  6. #catalina.sh  
  7. JAVA_OPTS="$JAVA_OPTS -server -Xms512m -Xmx512m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=256m" 
  8. #catalina.bat  
  9. set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx512m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=128m   

另外,tomcat服務(wù)器優(yōu)化的就不說(shuō)了,例如加httpd,調(diào)節(jié)參數(shù),apr,nio之類(lèi)。。。

5.其他觀(guān)察結(jié)果:由于部署多個(gè)rails,用jconsole監(jiān)測(cè),內(nèi)存消耗很大,特別是permsize的消耗,一直維持在85m上下,所以導(dǎo)致真實(shí)服務(wù)器也出項(xiàng)outofmemory。經(jīng)過(guò)測(cè)試,把上個(gè)項(xiàng)目的lib提取到tomcat的lib去(只保留一份),permsize僅僅維持在50m那樣子。另外要盡量使用jruby的新版本,1.1比1.0的性能提升相當(dāng)大(感覺(jué)非常明顯)。后來(lái)還啟用了jruby的server模式,感覺(jué)就是tomcat的啟動(dòng)速度慢許多了。。至于性能提升,暫時(shí)還沒(méi)察覺(jué)。。jruby有jit和aot兩種編譯模式,aot只是試過(guò)一下,還沒(méi)跟jit進(jìn)行過(guò)測(cè)試對(duì)比,暫時(shí)不清楚。

6.以上就是jruby on rails在tomcat的配置實(shí)踐。jruby on rails的部署方式還是挺不錯(cuò)的?,F(xiàn)在很期待jruby。

【編輯推薦】

  1. Jython和JRuby,以及Groovy:Java平臺(tái)的統(tǒng)一認(rèn)識(shí)模型
  2. JRuby 1.3.0 RC1發(fā)布 加強(qiáng)對(duì)GAE支持
  3. JRuby中調(diào)用java帶可變參數(shù)的方法
  4. 使用Java Web Start部署JRuby應(yīng)用
  5. JRuby入門(mén)教程:從無(wú)到有建立第一個(gè)Hello World
責(zé)任編輯:佚名 來(lái)源: JavaEye社區(qū)
相關(guān)推薦

2009-07-17 17:34:15

JRuby On Ra

2014-06-30 09:27:17

UbuntuTomcat集群

2009-07-17 17:00:13

在JRuby下將RoR

2019-07-12 16:28:32

MacKubernetes

2009-07-20 15:37:26

JRuby安裝JRuby配置

2015-11-24 14:14:00

CentOS 7.0Ceph配置

2013-03-06 13:27:03

HadoopLinux

2015-11-30 15:05:01

Linux瀏覽器Docker

2019-10-21 13:28:38

UbuntuPostgreSQL命令

2009-12-14 15:37:35

Ruby on Rai

2009-07-17 17:05:29

JRuby是什么JRuby

2010-05-13 09:07:13

JRuby

2016-01-06 14:00:20

Ubuntu 14Ubuntu 15Apache Solr

2020-03-18 14:40:14

Ubuntu 18.0RedisLinux

2022-12-27 08:51:31

WebDebian 11

2024-01-30 20:06:18

RHELVLAN

2018-03-29 15:21:03

LinuxDebian網(wǎng)橋

2009-07-20 15:42:34

監(jiān)控JRubyJProfiler

2010-10-09 08:58:03

NginxRuby on Rai

2015-08-04 13:29:06

Fedoralinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一级特黄在线 | 天天操人人干 | 久久91av| 欧美一级久久 | 免费黄色片在线观看 | 国产精品久久久久久久 | 精品国产伦一区二区三区观看说明 | 国产成人午夜高潮毛片 | 黑人精品欧美一区二区蜜桃 | 日韩视频中文字幕 | 一区二区三区在线 | 日韩精品一区二区三区中文在线 | 一区二区三区在线播放视频 | 日韩在线不卡 | 日韩中文在线视频 | 亚洲精品一区中文字幕乱码 | 日日操视频 | 午夜精品久久久久久不卡欧美一级 | 天天干天天色 | 日韩中文字幕视频 | 日一区二区 | 美女中文字幕视频 | 久久久久成人精品免费播放动漫 | 久日精品 | 中文在线一区二区 | 精品日本中文字幕 | 日本视频一区二区三区 | 91国语清晰打电话对白 | 麻豆国产精品777777在线 | 一区二区三区欧美 | 国产在线播| 欧美天堂 | 91极品视频 | 日本不卡一区二区三区 | 国产精品一区二区三区四区 | 国产成人精品久久二区二区91 | 日日夜夜天天 | 中文字幕国产第一页 | 国产一区二区三区 | avmans最新导航地址 | 国产精品视频一区二区三区四区国 |