| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!DOCTYPE document [ |
| <!ENTITY project SYSTEM "project.xml"> |
| ]> |
| <document url="cluster-channel.html"> |
| |
| &project; |
| |
| <properties> |
| <author email="fhanik@apache.org">Filip Hanik</author> |
| <title>The Cluster Channel object</title> |
| </properties> |
| |
| <body> |
| |
| <section name="Table of Contents"> |
| <toc/> |
| </section> |
| |
| <section name="Introduction"> |
| The cluster channel is the main component of a small framework we've nicknamed Apache Tribes.<br/> |
| The channel manages a set of sub components and together they create a group communication framework.<br/> |
| This framework is then used internally by the components that need to send messages between different Tomcat instances. |
| <br/> |
| A few examples of these components would be the SimpleTcpCluster that does the messaging for the DeltaManager, |
| or the BackupManager that uses a different replication strategy. The ReplicatedContext object does also |
| use the channel object to communicate context attribute changes. |
| </section> |
| <section name="Nested Components"> |
| <p><b><a href="cluster-membership.html">Channel/Membership</a>:</b> <br/> |
| The Membership component is responsible for auto discovering new nodes in the cluster |
| and also to provide for notifications for any nodes that have not responded with a heartbeat. |
| The default implementation uses multicast.<br/> |
| In the membership component you configure how your nodes, aka. members, are to be discovered and/or |
| divided up. |
| You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a> |
| </p> |
| <p><b><a href="cluster-sender.html">Channel/Sender</a>:</b> <br/> |
| The Sender component manages all outbound connections and data messages that are sent |
| over the network from one node to another. |
| This component allows messages to be sent in parallel. |
| The default implementation uses TCP client sockets, and socket tuning for outgoing messages are |
| configured here.<br/> |
| You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a> |
| </p> |
| <p><b><a href="cluster-sender.html#transport">Channel/Sender/Transport</a>:</b> <br/> |
| The Transport component is the bottom IO layer for the sender component. |
| The default implementation uses non-blocking TCP client sockets.<br/> |
| You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a> |
| </p> |
| <p><b><a href="cluster-receiver.html">Channel/Receiver</a>:</b> <br/> |
| The receiver component listens for messages from other nodes. |
| Here you will configure the cluster thread pool, as it will dispatch incoming |
| messages to a thread pool for faster processing. |
| The default implementation uses non-blocking TCP server sockets.<br/> |
| You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a> |
| </p> |
| <p><b><a href="cluster-interceptor.html">Channel/Interceptor</a>:</b> <br/> |
| The channel will send messages through an interceptor stack. Because of this, you have the ability to |
| customize the way messages are sent and received, and even how membership is handled.<br/> |
| You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a> |
| </p> |
| </section> |
| |
| |
| <section name="Attributes"> |
| |
| <subsection name="Common Attributes"> |
| |
| <attributes> |
| |
| <attribute name="className" required="true"> |
| The default value here is <code>org.apache.catalina.tribes.group.GroupChannel</code> and is |
| currently the only implementation available. |
| </attribute> |
| |
| |
| </attributes> |
| |
| |
| </subsection> |
| |
| <subsection name="org.apache.catalina.tribes.group.GroupChannel Attributes"> |
| |
| <attributes> |
| |
| <attribute name="heartbeat" required="false"> |
| Flag whether the channel manages its own heartbeat. |
| If set to true, the channel start a local thread for the heart beat. |
| If set this flag to false, you must set SimpleTcpCluster#heartbeatBackgroundEnabled |
| to true. default value is true. |
| </attribute> |
| |
| <attribute name="heartbeatSleeptime" required="false"> |
| If heartbeat == true, specifies the interval of heartbeat thread in milliseconds. |
| </attribute> |
| |
| <attribute name="optionCheck" required="false"> |
| If set to true, the GroupChannel will check the option flags that each |
| interceptor is using. Reports an error if two interceptor share the same |
| flag. |
| </attribute> |
| |
| </attributes> |
| |
| </subsection> |
| |
| </section> |
| |
| |
| </body> |
| |
| </document> |