On Tue, Jan 15, 2019, 12:51 PM Tim K <tim.k.5...@gmail.com wrote: > On Tue, Jan 15, 2019, 4:10 AM Keiichi Fujino <kfuj...@apache.org wrote: > >> Hi >> >> If you use StaticMembershipInterceptor, you must set the >> Cluster#channelStartOptions to 3 to avoid starting membershipservice. >> If you are using Tomcat 9, you can also use StaticMembershipService >> instead >> of StaticMembershipInterceptor. >> >> >> 2019年1月10日(木) 22:39 Tim K <tim.k.5...@gmail.com>: >> >> > On Wed, Jan 9, 2019, 2:16 PM Christopher Schultz < >> > ch...@christopherschultz.net wrote: >> > >> > > -----BEGIN PGP SIGNED MESSAGE----- >> > > Hash: SHA256 >> > > >> > > Tim, >> > > >> > > On 1/9/19 10:39, Tim K wrote: >> > > > I'm trying to split 4 separate tomcat instances into 2 clusters >> > > > (2x2) to try and avoid the all-to-all traffic, but even when >> > > > setting up the Receiver and Static members to only speak to 1 other >> > > > instance, some still seems to find and add the other members >> > > > outside of the defined config to the wrong cluster. I read that >> > > > mcast is still used when you have StaticMembers, could that be >> > > > causing this issue? >> > > >> > > Multicast is only used for membership, so if you are using static, >> > > there should be no multicast. >> > > >> > > Do you want to post your configuration(s)? >> > > >> > > - -chris >> > > -----BEGIN PGP SIGNATURE----- >> > > Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ >> > > >> > > iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlw2SIEACgkQHPApP6U8 >> > > pFh//A//WldkBxcRVWZ0Nj/FVjFqdhxr8dkystbk114wk8pjF/h5JOSmncQjvUn6 >> > > 999ZT54rXToS+Dl2svp9imR266o0+56bUvJVXG2O4NK7TQZsEsBdOsqfnWPoHBM3 >> > > kYS7lhzhlpmw1SDFlKVW0PnRX9acah5+SfVci5gL0cWTVqSkdmm4P6v2wqH1z7ej >> > > AeMZ0w2LaoRH0TTxJk8cD2vJpvnB3oNjrtUhHZCPJCraITPHhFNFMOSmhhf3+e1S >> > > K63D6l9kE3x4WDNtxKBBjr+5FaULM6kL5DotQlJPo0j7I4mL9DBgt2HkgTfoS39m >> > > M7QBGBR4tZ1zRIJiGXQRViMRhqL+Xjny61RxtU7zUlfWSChTEonUiv5z6aZ7q5n2 >> > > xz1Evrw+gLmoR+YecOazMHef/7z6GFNCGyE80BFbR8LgHeOubaPfY+zhYw6iWSQP >> > > eHt32x48vzPewYlV1HLJR7C1oXhFPN9QVT2r+UENcsMtlDdWIhaflw6nb3qXhP8N >> > > t4xqlUJebON1KolHRXXReNgz6TieKLmup1jSgRvVhohSYBOputLB01PY5S7E6vLy >> > > 33EZGHbCOWlZzC1qyiXRd7jIfkdsQ9oRRHknty1gi0id/20M+iqYS22ZggnXMtFX >> > > P0lORhhEiWBSyMHytrIb+uO7HglocrSuQfgVaoAkiaRUDtyBdHg= >> > > =PM9e >> > > -----END PGP SIGNATURE----- >> > > >> > > --------------------------------------------------------------------- >> > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> > > For additional commands, e-mail: users-h...@tomcat.apache.org >> > >> > >> > Essentially I'm trying to have server1 and server2 only in cluster1 and >> > server3 and server4 in only cluster2, but for some reason, members are >> > getting added to clusters that they aren't configured for. >> > >> > >> > >> > server1 config: >> > >> > <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" >> > channelSendOptions="8"> >> > >> > <Manager >> > className="org.apache.catalina.ha.session.DeltaManager" >> > expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> >> > >> > <Channel >> > className="org.apache.catalina.tribes.group.GroupChannel"> >> > >> > <Receiver >> > className="org.apache.catalina.tribes.transport.nio.NioReceiver" >> > address="auto" port="4000" autoBind="100" selectorTimeout="5000" >> > maxThreads="6"/> >> > >> > <Sender >> > className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> >> > >> > <Transport >> > >> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> >> > >> > </Sender> >> > >> > <Interceptor >> > >> > >> className="org.apache.catalina.tribes.group.interceptors.EncryptInterceptor" >> > encryptionKey="****Removed****" /> >> > >> > <Interceptor >> > >> > >> className="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor"/> >> > >> > <Interceptor >> > >> > >> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> >> > >> > <Interceptor >> > >> > >> className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/> >> > >> > <Interceptor >> > >> > >> className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor"> >> > >> > <Member >> > className="org.apache.catalina.tribes.membership.StaticMember" >> > host="server2" port="4000" domain="cluster1" >> > uniqueId="{1,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"/> >> > >> > </Interceptor> >> > >> > </Channel> >> > >> > <Valve >> > className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> >> > >> > <Valve >> > className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> >> > >> > <ClusterListener >> > className="org.apache.catalina.ha.session.ClusterSessionListener"/> >> > >> > </Cluster> >> > >> > >> > >> > server2 [everything the same except the <Member/> is]: >> > >> > <Member className="org.apache.catalina.tribes.membership.StaticMember" >> > host="server1" port="4000" domain="cluster1" >> > uniqueId="{0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"/> >> > >> > >> > >> > server3 [everything the same except the <Member/> is]: >> > >> > <Member className="org.apache.catalina.tribes.membership.StaticMember" >> > host="server4" port="4000" domain="cluster2" >> > uniqueId="{4,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"/> >> > >> > >> > >> > server4 [everything the same except the <Member/> is]: >> > >> > <Member className="org.apache.catalina.tribes.membership.StaticMember" >> > host="server3" port="4000" domain="cluster2" >> > uniqueId="{3,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"/> >> > >> >> >> -- >> Keiichi.Fujino >> > > I set Cluster#channelStartOptions to 3, continuing to use the > StaticMembershipInterceptor > for now with tomcat 9. I can confirm this setting did prevent > non-configured servers from getting added to clusters they were not > configured for but It doesn't appear to persist the user session > anymore. I login and get a session on server1 and then stop it, expecting > to fail over to server2, but it's not picking up the session started on the > other member of the cluster. >
I tried the StaticMembershipService instead of StaticMembershipInterceptor. I had to remove the Cluster#channelStartOptions=3 to get it working (guess that was only needed for the StaticMembershipInterceptor?). I added a Membership element (above the Receiver) with the StaticMembershipService class, then put both a LocalMember and Member within it. It appeared to work. > Question: what's considered a "large" cluster I've seen a lot of documentation about small vs large but I'd like to know what is considered large. Could the DeltaManager handle one single cluster (all-to-all) with 8 members with 8GB allocated to each jvm, separate servers? Not storing much in the session besides 3-4 short strings.