Como distinguir vários clusters do Tomcat uns dos outros?

1

SO: Ubuntu 12.04 LTS amd64
Servidor HTTP : Apache 2.2x
Tomcat : Apache 7.x
JVM : openJDK 1.7

Precisamos criar um ambiente do Tomcat 7 em cluster. Temos feito muita leitura e precisamos de esclarecimentos sobre como distinguir clusters uns dos outros . Nós lemos sobre tendo vários clusters, mas não vimos um exemplo real de como configurar vários clusters.

Para simplificar, como se configura este ambiente?

Node 01 - Apache HTTP
  running mod_jk using load balancer

Node 02 - Tomcat Server
  running PROD application instance (Cluster PROD)
  running TEST application instance (Cluster TEST)
  running DEV application instance (Cluster DEV)

Node 03 - Tomcat Server
  running PROD application instance (Cluster PROD)
  running TEST application instance (Cluster TEST)
  running DEV application instance (Cluster DEV)

Não queremos que os dados da sessão sejam compartilhados entre os diferentes clusters. Em outras palavras, não queremos que as informações de cluster do PROD (Produção) sejam compartilhadas com os clusters TEST e DEV (e vice-versa).

Acho que entendo que essa declaração no server.xml é a chave para distinguir cada instância de cluster. Por favor, corrija-me se eu estiver errado:

<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.4"
  port="45564" frequency="500"
  dropTime="3000"
/>

Portanto, eu só preciso alterar o campo de endereço para algo único para cada cluster? Exemplo:

<!-- Cluster PROD -->
<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.4"
  port="45564" frequency="500"
  dropTime="3000"
/>

<!-- Cluster TEST -->
<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.5"
  port="45564" frequency="500"
  dropTime="3000"
/>

<!-- Cluster DEV -->
<Membership
  className="org.apache.catalina.tribes.membership.McastService"
  address="228.0.0.6"
  port="45564" frequency="500"
  dropTime="3000"
/>

Existe algum outro conselho ou pegadinha?

    
por Van 12.07.2013 / 14:03

2 respostas

2

Você precisa ler: link

Você identificou corretamente o endereço IP multicast como o método pelo qual os clusters descobrem os membros. Você também pode usar portas diferentes.

If you want a QA cluster and a production cluster, the easiest config is to have the QA cluster be on a separate multicast address/port combination the the production cluster.

    
por 12.07.2013 / 16:30
0

Vários clusters significam várias instâncias do Tomcat. No seu caso, o nó 02 e o nó 03 serão um cluster, você não precisa definir outro. Portanto, use apenas uma tag Cluster (e, com isso, apenas uma tag Membership é necessária), e todas as três sessões do webapps serão sincronizadas entre as instâncias do tomcat (as webapps precisam ter a tag <distributable /> em sua web .xml para isso).

    
por 12.07.2013 / 16:19