[Seaside] [ANN] mod_cluster for Seaside

Philippe Marschall philippe.marschall at gmail.com
Tue Oct 5 15:00:35 UTC 2010


Hi

Have you ever wished Apache and Seaside would know each other better?
That Apache could tell Seaside where it was and vice versa? That
Seaside could tell Apache the load of the image so intelligent load
balancing decisions can be made? That you can dynamically add and
remove Seaside images from a cluster without restarting Apache or
messing with configuration files? The guys at JBoss though the same
and wrote mod_cluster [1].

How does this actually work? There are two Apache modules involved.
mod_advertise sends UDP broadcasts about Apache's location, you might
have several on different hosts in the network. mod_cluster_manager
allows remote configuration of Apache. Seaside will connect to the
advertised Apache instances and tell them where it is (host, port,
protocol, urls). This is kind of schizophrenic because the backend
makes a request to the frontend but anyway.

What do you need to get started? First you need to set up the
Smalltalk parts (not the Apache config) of mod_proxy_balancer [2]. If
you're just using a single image mod_cluster is overkill and
clustering without sticky session doesn't get you very far (unless
you're on GemStone). Then you need to setup mod_cluster itself, the
easiest way is to grab the binaries from JBoss [3] and follow the
installation instructions [4]. And finally you need to load ModCluster
from [5]. You start the magic with:

JBPharoAdvertiseListener startOnHost: 'yourIp' jvmRoute: 'yourRoute'

I should note the code is in the state "barely works on my machine",
there are likely a ton of bugs left.

Here's some of the limitations I'm aware of:
 - does not work on Mac due to UDP network stack problems
 - host address has to be hardcoded because there's no way of finding
it out on Pharo on Unix
 - has never been run under Windows
 - not yet split into different packages, you always get the tests and
the Pharo implementation
 - no Metacello configuration yet
 - the load is always reported as 100%

 [1] http://www.jboss.org/mod_cluster
 [2] http://book.seaside.st/book/advanced/deployment/deployment-apache/mod-proxy-balancer
 [3] http://www.jboss.org/mod_cluster/downloads/1-1-0.html
 [4] http://docs.jboss.org/mod_cluster/1.1.0/html/Quick_Start_Guide.html#d0e264
 [5] http://www.squeaksource.com/ajp

Cheers
Philippe


More information about the seaside mailing list