blob: 58bc37355c3130c0710072033bf60a9784de55cf [file] [log] [blame]
刘洪青6266f992017-05-15 21:21:03 +08001<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 7 Configuration Reference (7.0.77) - The Cluster Membership object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
2 .noPrint {display: none;}
3 td#mainBody {width: 100%;}
4</style><style type="text/css">
5code {background-color:rgb(224,255,255);padding:0 0.1em;}
6code.attributeName, code.propertyName {background-color:transparent;}
7
8
9table {
10 border-collapse: collapse;
11 text-align: left;
12}
13table *:not(table) {
14 /* Prevent border-collapsing for table child elements like <div> */
15 border-collapse: separate;
16}
17
18th {
19 text-align: left;
20}
21
22
23div.codeBox pre code, code.attributeName, code.propertyName, code.noHighlight, .noHighlight code {
24 background-color: transparent;
25}
26div.codeBox {
27 overflow: auto;
28 margin: 1em 0;
29}
30div.codeBox pre {
31 margin: 0;
32 padding: 4px;
33 border: 1px solid #999;
34 border-radius: 5px;
35 background-color: #eff8ff;
36 display: table; /* To prevent <pre>s from taking the complete available width. */
37 /*
38 When it is officially supported, use the following CSS instead of display: table
39 to prevent big <pre>s from exceeding the browser window:
40 max-width: available;
41 width: min-content;
42 */
43}
44
45div.codeBox pre.wrap {
46 white-space: pre-wrap;
47}
48
49
50table.defaultTable tr, table.detail-table tr {
51 border: 1px solid #CCC;
52}
53
54table.defaultTable tr:nth-child(even), table.detail-table tr:nth-child(even) {
55 background-color: #FAFBFF;
56}
57
58table.defaultTable tr:nth-child(odd), table.detail-table tr:nth-child(odd) {
59 background-color: #EEEFFF;
60}
61
62table.defaultTable th, table.detail-table th {
63 background-color: #88b;
64 color: #fff;
65}
66
67table.defaultTable th, table.defaultTable td, table.detail-table th, table.detail-table td {
68 padding: 5px 8px;
69}
70
71
72p.notice {
73 border: 1px solid rgb(255, 0, 0);
74 background-color: rgb(238, 238, 238);
75 color: rgb(0, 51, 102);
76 padding: 0.5em;
77 margin: 1em 2em 1em 1em;
78}
79</style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
Hongqing Liufd5ee812014-05-10 16:32:51 +080080 The Apache Tomcat Servlet/JSP Container
刘洪青6266f992017-05-15 21:21:03 +080081 " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 7</font></h1><font face="arial,helvetica,sanserif">Version 7.0.77, Mar 28 2017</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.svg" align="right" alt="Apache Logo" border="0" style="width: 266px;height: 83px;"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li><li><a href="http://wiki.apache.org/tomcat/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="jar-scanner.html">JarScanner</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="sessionidgenerator.html">SessionIdGenerator</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>web.xml</strong></p><ul><li><a href="filter.html">Filter</a></li></ul><p><strong>Other</strong></p><ul><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>The Cluster Membership object</h1><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
Hongqing Liufd5ee812014-05-10 16:32:51 +080082<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Default_Implementation">Default Implementation</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Multicast_Attributes">Multicast Attributes</a></li></ol></li></ul>
83</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
84 <p>
85 The membership component in the Apache Tribes <a href="cluster-channel.html">Channel</a> is responsible
86 for dynamic discovery of other members(nodes) in the cluster.
87 </p>
88</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Default Implementation"><!--()--></a><a name="Default_Implementation"><strong>Default Implementation</strong></a></font></td></tr><tr><td><blockquote>
89 <p>
90 The default implementation of the cluster group notification is built on top of multicast heartbeats
91 sent using UDP packets to a multicast IP address.
92 Cluster members are grouped together by using the same multicast address/port combination.
93 Each member sends out a heartbeat with a given interval (<code>frequency</code>), and this
94 heartbeat is used for dynamic discovery.
95 In a similar fashion, if a heartbeat has not been received in a timeframe specified by <code>dropTime</code>
96 ms. a member is considered suspect and the channel and any membership listener will be notified.
97 </p>
98</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
99
100 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Multicast Attributes"><!--()--></a><a name="Multicast_Attributes"><strong>Multicast Attributes</strong></a></font></td></tr><tr><td><blockquote>
101
刘洪青6266f992017-05-15 21:21:03 +0800102 <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code class="attributeName">className</code></strong></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800103 <p>
104 The default value is <code>org.apache.catalina.tribes.membership.McastService</code>
105 and is currently the only implementation.
106 This implementation uses multicast heartbeats for member discovery.
107 </p>
刘洪青6266f992017-05-15 21:21:03 +0800108 </td></tr><tr><td align="left" valign="center"><code class="attributeName">address</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800109 <p>
110 The multicast address that the membership will broadcast its presence and listen
111 for other heartbeats on. The default value is <code>228.0.0.4</code>
112 Make sure your network is enabled for multicast traffic.<br>
刘洪青6266f992017-05-15 21:21:03 +0800113 The multicast address, in conjunction with the <code>port</code> is what
114 creates a cluster group. To divide up your farm into several different group, or to
Hongqing Liufd5ee812014-05-10 16:32:51 +0800115 split up QA from production, change the <code>port</code> or the <code>address</code>
116 <br>Previously known as mcastAddr.
117 </p>
刘洪青6266f992017-05-15 21:21:03 +0800118 </td></tr><tr><td align="left" valign="center"><code class="attributeName">port</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800119 <p>
120 The multicast port, the default value is <code>45564</code><br>
刘洪青6266f992017-05-15 21:21:03 +0800121 The multicast port, in conjunction with the <code>address</code> is what
122 creates a cluster group. To divide up your farm into several different group, or to
Hongqing Liufd5ee812014-05-10 16:32:51 +0800123 split up QA from production, change the <code>port</code> or the <code>address</code>
124 </p>
刘洪青6266f992017-05-15 21:21:03 +0800125 </td></tr><tr><td align="left" valign="center"><code class="attributeName">frequency</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800126 <p>
127 The frequency in milliseconds in which heartbeats are sent out. The default value is <code>500</code> ms.<br>
128 In most cases the default value is sufficient. Changing this value, simply changes the interval in between heartbeats.
129 </p>
刘洪青6266f992017-05-15 21:21:03 +0800130 </td></tr><tr><td align="left" valign="center"><code class="attributeName">dropTime</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800131 <p>
刘洪青6266f992017-05-15 21:21:03 +0800132 The membership component will time out members and notify the Channel if a member fails to send a heartbeat within
133 a give time. The default value is <code>3000</code> ms. This means, that if a heartbeat is not received from a
Hongqing Liufd5ee812014-05-10 16:32:51 +0800134 member in that timeframe, the membership component will notify the cluster of this.<br>
135 On a high latency network you may wish to increase this value, to protect against false positives.<br>
刘洪青6266f992017-05-15 21:21:03 +0800136 Apache Tribes also provides a <a href="cluster-interceptor.html#org.apache.catalina.tribes.group.interceptors.TcpFailureDetector_Attributes"><code>TcpFailureDetector</code></a> that will
Hongqing Liufd5ee812014-05-10 16:32:51 +0800137 verify a timeout using a TCP connection when a heartbeat timeout has occurred. This protects against false positives.
138 </p>
刘洪青6266f992017-05-15 21:21:03 +0800139 </td></tr><tr><td align="left" valign="center"><code class="attributeName">bind</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800140 <p>
141 Use this attribute if you wish to bind your multicast traffic to a specific network interface.
142 By default, or when this attribute is unset, it tries to bind to <code>0.0.0.0</code> and sometimes on multihomed hosts
143 this becomes a problem.
144 </p>
刘洪青6266f992017-05-15 21:21:03 +0800145 </td></tr><tr><td align="left" valign="center"><code class="attributeName">ttl</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800146 <p>
147 The time-to-live setting for the multicast heartbeats.
148 This setting should be a value between 0 and 255. The default value is VM implementation specific.
149 </p>
刘洪青6266f992017-05-15 21:21:03 +0800150 </td></tr><tr><td align="left" valign="center"><code class="attributeName">domain</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800151 <p>
152 Apache Tribes has the ability to logically group members into domains, by using this domain attribute.
153 The <code>org.apache.catalina.tribes.Member.getDomain()</code> method returns the value specified here.
154 </p>
刘洪青6266f992017-05-15 21:21:03 +0800155 </td></tr><tr><td align="left" valign="center"><code class="attributeName">soTimeout</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800156 <p>
157 The sending and receiving of heartbeats is done on a single thread, hence to avoid blocking this thread forever,
158 you can control the <code>SO_TIMEOUT</code> value on this socket.<br>
159 If a value smaller or equal to 0 is presented, the code will default this value to frequency
160 </p>
刘洪青6266f992017-05-15 21:21:03 +0800161 </td></tr><tr><td align="left" valign="center"><code class="attributeName">recoveryEnabled</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800162 <p>
163 In case of a network failure, Java multicast socket don't transparently fail over, instead the socket will continuously
164 throw IOException upon each receive request. When recoveryEnabled is set to true, this will close the multicast socket
165 and open a new socket with the same properties as defined above.<br>
166 The default is <code>true</code>. <br>
167 </p>
刘洪青6266f992017-05-15 21:21:03 +0800168 </td></tr><tr><td align="left" valign="center"><code class="attributeName">recoveryCounter</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800169 <p>
刘洪青6266f992017-05-15 21:21:03 +0800170 When <code>recoveryEnabled==true</code> this value indicates how many
171 times an error has to occur before recovery is attempted. The default is
172 <code>10</code>. <br>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800173 </p>
刘洪青6266f992017-05-15 21:21:03 +0800174 </td></tr><tr><td align="left" valign="center"><code class="attributeName">recoverySleepTime</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800175 <p>
176 When <code>recoveryEnabled==true</code> this value indicates how long time (in milliseconds)
刘洪青6266f992017-05-15 21:21:03 +0800177 the system will sleep in between recovery attempts, until it recovers successfully.
Hongqing Liufd5ee812014-05-10 16:32:51 +0800178 The default is <code>5000</code> (5 seconds). <br>
179 </p>
刘洪青6266f992017-05-15 21:21:03 +0800180 </td></tr><tr><td align="left" valign="center"><code class="attributeName">localLoopbackDisabled</code></td><td align="left" valign="center">
181 <p>
182 Membership uses multicast, it will call <code>java.net.MulticastSocket.setLoopbackMode(localLoopbackDisabled)</code>.
183 When <code>localLoopbackDisabled==true</code> multicast messages will not reach other nodes on the same local machine.
184 The default is <code>false</code>. <br>
185 </p>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800186 </td></tr></table>
187
188
189 </blockquote></td></tr></table>
190
191
刘洪青6266f992017-05-15 21:21:03 +0800192</blockquote></td></tr></table></td></tr><tr class="noPrint"><td width="20%" valign="top" nowrap class="noPrint"></td><td width="80%" valign="top" align="left"><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="comments_section" id="comments_section"><strong>Comments</strong></a></font></td></tr><tr><td><blockquote><p class="notice"><strong>Notice: </strong>This comments section collects your suggestions
193 on improving documentation for Apache Tomcat.<br><br>
194 If you have trouble and need help, read
195 <a href="http://tomcat.apache.org/findhelp.html">Find Help</a> page
196 and ask your question on the tomcat-users
197 <a href="http://tomcat.apache.org/lists.html">mailing list</a>.
198 Do not ask such questions here. This is not a Q&amp;A section.<br><br>
199 The Apache Comments System is explained <a href="../comments.html">here</a>.
200 Comments may be removed by our moderators if they are either
201 implemented or considered invalid/off-topic.</p><script type="text/javascript"><!--//--><![CDATA[//><!--
202 var comments_shortname = 'tomcat';
203 var comments_identifier = 'http://tomcat.apache.org/tomcat-7.0-doc/config/cluster-membership.html';
204 (function(w, d) {
205 if (w.location.hostname.toLowerCase() == "tomcat.apache.org") {
206 d.write('<div id="comments_thread"><\/div>');
207 var s = d.createElement('script');
208 s.type = 'text/javascript';
209 s.async = true;
210 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
211 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
212 }
213 else {
214 d.write('<div id="comments_thread"><strong>Comments are disabled for this page at the moment.<\/strong><\/div>');
215 }
216 })(window, document);
217 //--><!]]></script></blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
218 Copyright &copy; 1999-2017, Apache Software Foundation
Hongqing Liufd5ee812014-05-10 16:32:51 +0800219 </em></font></div></td></tr></table></body></html>