在同一台机器上运行多个Resin实例
2010-05-11 09:24
453 查看
通过在给Resin配置中的server节点指定一个id属性值,例如此值为s1,那么我们需要在启动Resin的命令行中增加参数 -server s1,这就是Resin的做法。假设在一台机器上启动了两个 Resin 实例,那么实际上系统会有三个Java进程,其中一个是Resin的监控、管理进程,另外两个当然是独立的两个不同Resin实例。看看我的一个简单配置 吧:
Resin代码
<resin xmlns="http://caucho.com/ns/resin"
xmlns:resin="http://caucho.com/ns/resin/core">
<log name="" level="info" path="stdout:"/>
<resin:import path="${resin.home}/conf/app-default.xml"/>
<cluster id="dlog">
<server-default>
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-server</jvm-arg>
</sever-default>
<server id="s1" port="6801">
<http id="" port="8081"/>
</server>
<server id="s2" port="6802">
<http id="" port="8082"/>
</server>
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</cluster>
</resin>
<resin xmlns="http://caucho.com/ns/resin"
xmlns:resin="http://caucho.com/ns/resin/core">
<log name="" level="info" path="stdout:"/>
<resin:import path="${resin.home}/conf/app-default.xml"/>
<cluster id="dlog">
<server-default>
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-server</jvm-arg>
</sever-default>
<server id="s1" port="6801">
<http id="" port="8081"/>
</server>
<server id="s2" port="6802">
<http id="" port="8082"/>
</server>
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</cluster>
</resin>
上面这个配置中,我定义了两个server分别运行在 8081 和 8082 端口上,它们共享 server-default 中的配置,同时这两个server都配置了一个web应用是 /opt/dlog 这个目录。当然,如果你在一个机器上运行多个 Resin 是为了运行不同的应用,那你可以将 host 节点直接写在对应的 http 节点下,例如:
Resin代码
<server id="s1">
<http id="" port="8082">
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</http>
</server>
<server id="s1">
<http id="" port="8082">
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</http>
</server>
一旦我们定义好配置了,下面就要启动这两个 Resin 的实例了,在 Linux 下可以这样启动这两个 Resin 实例:
Xml代码
$/opt/resin1/bin/httpd.sh -server s1 start
$/opt/resin1/bin/httpd.sh -server s2 start
$/opt/resin1/bin/httpd.sh -server s1 start
$/opt/resin1/bin/httpd.sh -server s2 start
如果你想让Resin在系统启动的时候自动运行,那必须修改一下 httpd.sh 写死-server 的参数。
不知道你明白了没,Resin 就是这样一种架构,要跑多个 Resin 并不需要拷贝多份 Resin 的文件。全部通过配置和命令行来操作。
Resin代码
<resin xmlns="http://caucho.com/ns/resin"
xmlns:resin="http://caucho.com/ns/resin/core">
<log name="" level="info" path="stdout:"/>
<resin:import path="${resin.home}/conf/app-default.xml"/>
<cluster id="dlog">
<server-default>
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-server</jvm-arg>
</sever-default>
<server id="s1" port="6801">
<http id="" port="8081"/>
</server>
<server id="s2" port="6802">
<http id="" port="8082"/>
</server>
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</cluster>
</resin>
<resin xmlns="http://caucho.com/ns/resin"
xmlns:resin="http://caucho.com/ns/resin/core">
<log name="" level="info" path="stdout:"/>
<resin:import path="${resin.home}/conf/app-default.xml"/>
<cluster id="dlog">
<server-default>
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-server</jvm-arg>
</sever-default>
<server id="s1" port="6801">
<http id="" port="8081"/>
</server>
<server id="s2" port="6802">
<http id="" port="8082"/>
</server>
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</cluster>
</resin>
上面这个配置中,我定义了两个server分别运行在 8081 和 8082 端口上,它们共享 server-default 中的配置,同时这两个server都配置了一个web应用是 /opt/dlog 这个目录。当然,如果你在一个机器上运行多个 Resin 是为了运行不同的应用,那你可以将 host 节点直接写在对应的 http 节点下,例如:
Resin代码
<server id="s1">
<http id="" port="8082">
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</http>
</server>
<server id="s1">
<http id="" port="8082">
<host id="" root-directory=".">
<web-app id="/" root-directory="/opt/dlog" redeploy-mode='manual'/>
</host>
</http>
</server>
一旦我们定义好配置了,下面就要启动这两个 Resin 的实例了,在 Linux 下可以这样启动这两个 Resin 实例:
Xml代码
$/opt/resin1/bin/httpd.sh -server s1 start
$/opt/resin1/bin/httpd.sh -server s2 start
$/opt/resin1/bin/httpd.sh -server s1 start
$/opt/resin1/bin/httpd.sh -server s2 start
如果你想让Resin在系统启动的时候自动运行,那必须修改一下 httpd.sh 写死-server 的参数。
不知道你明白了没,Resin 就是这样一种架构,要跑多个 Resin 并不需要拷贝多份 Resin 的文件。全部通过配置和命令行来操作。
相关文章推荐
- 在同一台机器上运行多个Resin实例
- 避免在一台机器上同时运行同一应用程序的多个实例。
- 在一台机器上同时运行多个Neo4j实例
- 一台机器运行多个JBoss多实例, 解决JBoss端口冲突
- 发现一台机器中同时运行多个Oracle实例时。。。
- tomcat does not exist /多个tomcat运行在一台机器上/一个tomcat运行多个实例
- tomcat does not exist /多个tomcat运行在一台机器上/一个tomcat运行多个实例
- 一台机器运行多个JBoss多实例
- play版本升级、降级 & dependencies.yml & 一台机器多版本 & 同时运行多个实例
- 如何在一台机器上运行两个MySQL实例
- 一台机器运行多个JBoss多实例
- 一台机器同一份tomcat运行多个tomcat实例
- 一台机器运行多个JBoss 4.2.3多实例,或多个同一版
- 在一台机器上运行多个HDFS实例
- 一台机器,运行两个mysql版本 实例
- 一台机器运行多个JBoss多实例
- 禁止一个应用程序的实例在同一台机器上运行多个(C#源码)
- 使用Process类避免在一台机器上运行同一程序的多个实例
- 一台机器同时运行多个appium实例
- 避免在一台机器上同时运行同一应用程序的多个实例。