Rob Block wrote:

Tomcat developers,

I have created a plugin for Tomcat 5 that provides scalable session
clustering by replicating each session to a single node rather than
the whole cluster. The plugin uses the jcluster
(http://jcluster.dev.java.net) API for communication, membership and
failover, a BSD-licensed set of API’s that is similar to jgroups and
has a working implementation that uses jgroups as the impl. (I
worked with Bela Ban and others on the jcluster API spec after he and
Filip Hanik told me about Tomcat not being able to use jgroups
because of the LGPL license.)


The tomcat plugin itself is hosted at
https://sourceforge.net/projects/tomcat-jg - the same place Filip
developed the full-replication jgroups-based session manager that is
now integrated into Tomcat 5.  The initial (alpha quality) release of
the plugin is available to users and developers as of today;
hopefully in the future it can be integrated into the Tomcat source.

To download the plugin: go to tomcat-jg site (above) and select
tomcat-jcluster package under File Releases.  It contains three jar
files, plus release notes for setting it up:

catalina-ha.jar – the tomcat plugin jcluster.jar – jcluster API jcluster-plugin.jar – jgroups impl of jcluster

There are only two source files in the plugin itself (since they
extend and make use of existing Tomcat 5 classes).  They can be
viewed online at:

http://cvs.sourceforge.net/viewcvs.py/tomcat-jg/tomcat-javagroups/src/org/apache/catalina/cluster/session/

The jcluster javadoc can be browsed online at
https://jcluster.dev.java.net/nonav/javadoc/index.html.

It is mostly a set of interfaces that roughly map to jgroups classes
like JChannel, PullPushAdapter and RpcDispatcher.  (The one exception
is the net.jcluster.ha package, which allows state replication and
failover for objects and services using configurable policies for
backup selection and failover.  It does not have a counterpart in
jgroups and is the basis for much of the plugin implementation.)

I would appreciate feedback from the Tomcat community about the
jcluster API itself, as well as the feasibility of using it as the
clustering framework for Tomcat down the road.  It would actually be
very straightforward to write a jcluster implementation that calls
the existing Tomcat clustering classes (ClusterSender/Receiver,
McastService, etc.), so that plugging in jgroups would be an optional
step.

I realize this is a lot of information for those of you who did not
know about any of this ongoing work, but I’ll be happy to answer any
questions you have about jcluster, the plugin, who I am, why I’m
doing this and why you should care.


Since we have something working quite well thanks to Filip (and it almost does farming), I think we're going to keep it. You can of course use the cluster API of Tomcat if you wish to provide a seamless integration to your users.

I don't wish to add new dependencies because of incremental improvements, and I don't see a need either for supporting every cluster replication framework out of the box either (each framework can ship a Tomcat plugin with its distribution, I think), esp since our various loadbalancers are not adapted to the kind of replication you propose yet.

Rémy


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to