Apache Tribes - The Tomcat Cluster Communication Module

QuickStart


            //create a channel
            Channel myChannel = new GroupChannel();

            //create my listeners
            MyMessageListener msgListener = new MyMessageListener();
            MyMemberListener mbrListener = new MyMemberListener();

            //attach the listeners to the channel
            myChannel.addMembershipListener(mbrListener);
            myChannel.addChannelListener(msgListener);

            //start the channel
            myChannel.start(Channel.DEFAULT);

            //create a message to be sent, message must implement java.io.Serializable
            //for performance reasons you probably want them to implement java.io.Externalizable
            Serializable myMsg = new MyMessage();

            //retrieve my current members
            Member[] group = myChannel.getMembers();

            //send the message
            channel.send(group,myMsg,Channel.SEND_OPTIONS_DEFAULT);

    

Interfaces for the Application Developer

  1. org.apache.catalina.tribes.Channel Main component to interact with to send messages
  2. org.apache.catalina.tribes.MembershipListener Listen to membership changes
  3. org.apache.catalina.tribes.ChannelListener Listen to data messages
  4. org.apache.catalina.tribes.Member Identifies a node, implementation specific, default is org.apache.catalina.tribes.membership.MemberImpl

Interfaces for the Tribes Component Developer

  1. org.apache.catalina.tribes.Channel Main component to that the application interacts with
  2. org.apache.catalina.tribes.ChannelReceiver IO Component to receive messages over some network transport
  3. org.apache.catalina.tribes.ChannelSender IO Component to send messages over some network transport
  4. org.apache.catalina.tribes.MembershipService IO Component that handles membership discovery and
  5. org.apache.catalina.tribes.ChannelInterceptor interceptors between the Channel and the IO layer
  6. org.apache.catalina.tribes.ChannelMessage The message that is sent through the interceptor stack down to the IO layer
  7. org.apache.catalina.tribes.Member Identifies a node, implementation specific to the underlying IO logic