we are currently developing a JBoss application. To deploy it, we have a total of four servers (three years old). I am wondering which might be the best to do?
There could be a load balancer (even a load-balancer cluster, for failover) in front of two servers, each holding one JBoss and one PostgreSQl host inside XEN environments.
Does this make sense? Are there other, better options?
Thanks a lot for your advice!
The newer versions of JBoss (5.x and later) are easy to configure as a cluster (see my JBoss cluster post) to take advantage of sharing app session state behind the load balancer.
Therefore, if you run as a cluster then you can run them behind a load balancer (JBoss doesn't have its own built in load balancing ability).
Now, if these are 32-bit systems then you know that each JBoss instance (of the 4) can take only up to about 1.3GB of RAM . So, when you run as a cluster you could consume up to 6 GB of ram for the 4 instances. So, if each old server has 8GB of RAM you could theoretically run 4 instances of JBoss in a cluster on each piece of hardware, taking advantage of all the RAM.
Now, if the OS is 64-bit then you only need to run 1 instance of JBoss on each piece of hardware because the OS will allow JBoss to use up as much RAM as the system has.
So, lots of things to think about.