HelmaSwarm
hide
ContentsHelmaSwarm is a Helma extension that allows multiple instances of Helma to be combined into a cluster. It consists of three tools that plug into various parts of Helma:
HelmaSwarm uses JGroups <http://jgroups.org> for communication between Helma instances. This version of Helmaswarm comes bundled with JGroups 2.4.1-sp3. RequirementsThis version of HelmaSwarm requires Helma 1.6.0-rc2 (Release Candidate 2) or later. DownloadYou can download the latest HelmaSwarm release from http://adele.helma.org/download/helma/contrib/helmaswarm/. BuildingHelmaSwarm is built with Apache Ant.
This should compile and build helmaswarm-version.jar and copy it to the lib/ext directory of your Helma installation along with the JGroups jar file. ConfigurationTo enable SwarmCache, SwarmSessionManager, and SwarmIDGenerator for a Helma application, add the respective lines to its app.properties file:
HelmaSwarm uses a group name to identify and connect to a particular swarm. By default, the application name is used as the group name. If you want use a different group name, for instance because your swarm is made up of applications with different names, you can set the HelmaSwarm group name with the swarm.name entry in app.properties:
HelmaSwarm uses an XML configuration file from which it reads its properties. This file is called swarm.conf and is either set by just copying it to the application directory, or by setting the helma.conf app property:
The most important setting in helma.conf is the JGroups network stack. By default, HelmaSwarm uses a UDP multicast stack called "udp". helma.swarm also contains a TCP stack. The JGroups stack is configured with the following app property:
The default UDP multicast stack uses port 22024 on multicast address 224.0.0.132. It is advisable to use a different setting if multiple swarm instances are operated on the same local network to avoid unnecessary network traffic. Asynchronous Communication and Sticky SessionsHelmaSwarm uses asynchronous communication for keeping consistent state among Helma instances. This means that messages are sent without the sender waiting for confirmation of receipt by other swarm members. While this greatly reduces group communication overhead and complexity, it makes it possible that a client that has altered some state on one Helma instance may still see the old state in a subsequent request to another swarm member, if that request gets ahead of the swarm notification of the state change. For this reason it is advisable (although not strictly necessary) to use sticky sessions with HelmaSwarm clusters. See doc/README-Apache.txt for information on how to implement sticky sessions with Apache and mod_jk. Round Robin DNS should minimize the risk of this scenario, since DNS names aren't refreshed that often, and if they are chances should be small that DNS lookup and HTTP request gets ahead of HelmaSwarm communication on the server LAN. Credits & FeedbackHelmaSwarm is written by Hannes Wallnoefer (hannes at helma dot at). This sofware was initially inspired by SwarmCache <http://swarmcache.sf.net/>, from which it borrows part of its name. Pages linking to this page: Related Projects |
navigation
Download
Community
Weblog
Mailing Lists
IRC Channel
Documentation
Introductions
Tools
Reference
Project
Roadmap
Bug Reporting
Source
Helma NG Wiki
Wiki
Tags
Updates
Related Projects
Sites using Helma
Shop
search
all tags
Tagsapps (1) bugs (2) class (1) community (2) compatibility (1) concurrency (1) continuations (2) Documentation (6) dogfood (1) formatting (1) gobi (1) helma (6) helma 1.6 (13) helma 1.7 (8) helma 2 (11) helma ng (11) hopobject (1) html (1) inheritance (5) introspection (1) java (2) javascript (5) jetty (1) JSDoc (1) lazy (1) marius person (1) metaprogramming (2) modules (3) oop (1) organization (2) ORM (2) parsing (1) project (2) projects (1) prototype (1) Rabbit (2) Reference (1) REPL (1) rhino (4) roadmap (3) shell (1) shop (0) Skin Rendering (5) Snippets (1) source svn (1) sugar (3) templates (13) testing (4) Tobi (7) tobi repl shell introspection (0) xml (1) Pages linking to this page: Wiki Overview Text Draft, wiki pages linking here
|