Cluster web com Tomcat edistribuição de carga

3 respostas
fabio.vd

BOM DIA .

Estou tentando configurar o apache e o tomcat para fazer uma arquitetura de cluster para o balanceamento de carga no Windows Server 2003 , não estou obtendo êxito na configuração.

Se alguém puder me ajudar?

Obrigado

3 Respostas

zirocool

Que tipo de problema tá dando?
Configurei um ontem, por causa de um maldito ponto no lugar de uma vírgula não funcionava.

Manda mais detalhes do que tá acontecendo, pra que eu, e mais alguém no furum, possamos ajudar.

zirocool

Seguinte, tu tá usando o apache com o mod_jk?

Se sim, abre o httpd.conf, e na seção de carregamento de modulos, poe isso abaixo

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/worker.properties
JkLogFile logs/mod_jk.log
JkLogLevel info

JkMount /jk state
JkMount /jsp-examples/* cluster
JkMount /servlets-examples/* cluster

No arquivo worker.properties, que pode ser salvo no diretorio conf, do apache, ponha o conteudo abaixo, configurando as portas e os ip’s de acordo com as tuas configurações de máquinas ae.

worker.list=ajp13,cluster,state

#balanceador
worker.cluster.type=lb
worker.cluster.balance_workers=no1,no2
worker.cluster.sticky_session=true

#monitoração do cluster
worker.state.type=status

#primeiro  do cluster
worker.no1.type=ajp13
worker.no1.host=10.17.107.19
worker.no1.port=8009
worker.no1.lbfactor=1

#segundo  do cluster
worker.no2.type=ajp13
worker.no2.host=10.17.107.18
worker.no2.port=8009
worker.no2.lbfactor=1

Note que na propriedade worker.list, tem alguns nomes, como state, cluster,
Esses nomes são referências para o JkMount, q vai ser usado lá no httpd.conf

por exemplo,
JkMount /teste/* cluster

onde /teste/* é o nome do contexto rodando nos tomcats, e cluster é o nome da referência do worker com o balanceador de carga.

o trecho:
JkMount /jk state
permite monitoração dos nodos via web, vendo quais estao ativos, inativos.

Feito isso, deves editar os arquivos server.xml do teu tomcat.

Procure o trecho abaixo no teu server.xml, e no jvmRout, ponha o identificador que colocou lá no workers.properties

<Engine name="Catalina" defaultHost="localhost" debug="0" jvmRout="no1">

Descomente o trecho abaixo, e usa o manager mais apropriado, no caso aqui, seguindo as especificações de um artigo, to usando o SimpleTcpReplicationManager, que replica a sessao, via tcp de modo síncrono (o que consome uma maior quantidade de largura de banda da rede), definido no parametro: replicationMod, da tag Sender.

<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName="org.apache.catalina.cluster.session.SimpleTcpReplicationManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="false"
                 notifyListenersOnReplication="true">

            <Membership 
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr="228.0.0.4"
                mcastPort="45564"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver 
                className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="auto"
                tcpListenPort="4001"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>

            <Sender
                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="synchronous"
                ackTimeout="15000"/>

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
                   
            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>
        </Cluster>

Esse trecho do código, te garante um sistema de alta disponibilidade, ou seja, se cair um dos nós do teu cluster, outro assume as sessoes do que caiu.

fabio.vd

Zirocool

valeu pela ajuda!!!

cara acho q estava estava fazendo tudo certo , mas não estou conseguindo startar o apache?

Atenciosamente

Criado 27 de agosto de 2007
Ultima resposta 13 de set. de 2007
Respostas 3
Participantes 2