Cluster with Two Servers

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
[[Category: Cookbook]]
 
[[Category: Cookbook]]
 +
 +
This is a basic Resin configuration with two servers in a single cluster.
 +
Since this configuration does not have a load balance tier, it needs a load balancer
 +
(Resin, Apache or hardware) to work properly.
 +
 +
The two servers act as backups for each other for clustering purposes, because they form
 +
the first two clusters of a triad. The two servers check each others heartbeats, record statistics and
 +
save each others statistics and error logs.
 +
 +
Each server listens to HTTP port 8080 and serves web-apps from the webapps directory.
 +
The root web-app would be in webapps/ROOT, for example. Standard servlet behavior and jsp and php
 +
support is enabled with the <resin:import> of app-default.xml.
 +
 +
JDK logging goes to stdout, which goes to jvm-a.log and jvm-b.log as managed by
 +
the [[watchdog]].
 +
  
 
== resin.xml configuration ==
 
== resin.xml configuration ==
Line 21: Line 37:
 
       <resin:import path="${__DIR__}/app-default.xml"/>
 
       <resin:import path="${__DIR__}/app-default.xml"/>
 
   
 
   
 +
      <development-mode-error-page/>
 +
 
 
       <proxy-cache memory-size="64M"/>
 
       <proxy-cache memory-size="64M"/>
 
   
 
   

Revision as of 22:58, 28 August 2010


This is a basic Resin configuration with two servers in a single cluster. Since this configuration does not have a load balance tier, it needs a load balancer (Resin, Apache or hardware) to work properly.

The two servers act as backups for each other for clustering purposes, because they form the first two clusters of a triad. The two servers check each others heartbeats, record statistics and save each others statistics and error logs.

Each server listens to HTTP port 8080 and serves web-apps from the webapps directory. The root web-app would be in webapps/ROOT, for example. Standard servlet behavior and jsp and php support is enabled with the <resin:import> of app-default.xml.

JDK logging goes to stdout, which goes to jvm-a.log and jvm-b.log as managed by the watchdog.


resin.xml configuration

 <resin xmlns="http://caucho.com/ns/resin"
        xmlns:resin="urn:java:com.caucho.resin">

   <log-handler name="" level="all" path="stdout:"
                timestamp="[%y-%m-%d %H:%M:%S.%s] "/>

   <logger name="com.caucho" level="info"/>
 
   <cluster id="my-cluster">
     <server-default>
       <http port="8080"/>
     </server-default>

     <server id="a" address="192.168.1.10" port="6800"/>
     <server id="b" address="192.168.1.11" port="6801"/>

     <resin:import path="${__DIR__}/app-default.xml"/>

     <development-mode-error-page/>
 
     <proxy-cache memory-size="64M"/>

     <resin:DeployService/>
     <resin:JmxService/>
     <resin:LogService/>
     <resin:StatService/>
 
     <host id="">
       <access-log path="log/access.log"
                   format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
                   rollover-period="1W"/>

       <web-app-deploy path="webapps"/>
     </host>
   </cluster>
 </resin>
Personal tools