domingo, 17 de maio de 2015

Montando um cluster de WildFly em 5 minutos

Olá pessoal, segue meu tutorial para você montar um cluster de WildFly em 5 minutos.

Abaixo está o vídeo e o passo-a-passo detalhado.



Lembrando que como pré-requisito você precisa ter o JDK instalado na máquina (execute "java -version" para validar)

Vamos lá:

- Baixe o WildFly
- Descompacte o zip

- Entre em <Pasta do WildFly>/domain/configuration

- Abra o domain.xml e no final dele na dentro da tag <server-groups> adicione esse código:
 <server-group name="cluster-group" profile="ha">
            <jvm name="default">
                <heap size="64m" max-size="512m"/>
            </jvm>
            <socket-binding-group ref="ha-sockets"/>
        </server-group>

- Abra o host.xml e dentro da tag <servers> no server-two edite o auto-start="true" para auto-start="false"
- Ainda no host.xml e dentro da tag <servers> adicione esses servers:
 <server name="cluste-one" group="cluster-group" auto-start="true">
            <socket-bindings port-offset="200"/>
        </server>
 <server name="cluste-two" group="cluster-group" auto-start="true">
            <socket-bindings port-offset="300"/>
        </server>

- Pelo terminal/cmd entre em: <Pasta do WildFly>/bin
- Se estiver no windows: Execute o add-user.bat
- Se estiver no linux/mac: Execute o add-user.sh

- Siga o passo-a-passo do add-user
1) aperte enter
2) digite wadmin
3) digite mortadela@1
4) digite mortadela@1
5) aperte enter
6) digite yes
7) digite no
8) aperte enter

- Se estiver no windows: Execute o domain.bat
- Se estiver no linux/mac: Execute o domain.sh

- Agora o ambiente está configurado, você subiu 3 JBoss na sua máquina. Teste pelo browser:
1) Master: http://localhost:8080
2) Slave1: http://localhost:8280
3) Slave2: http://localhost:8380

- Para testar se o cluster está funcionando:
1) Baixe o war: https://dl.dropboxusercontent.com/u/8155843/TDC%20Floripa%202015/cluster-example.war
2) Entre via browser no console admin do WildFly master: http://localhost:9990/
3) Digite usuário wadmin e a senha mortadela@1
4) Acesse o menu Deployments
5) Clique em Add
6) Selecione o cluster-example.war
7) Clique em Next
8) Clique em Save
9) Clique em Assign
10) Selecione cluster-group
11) Clique em Save

- Teste a aplicação
1) Acesse via browser http://localhost:8280/cluster
2) Veja uma contagem acontecendo, esse valor está num EJB Stateful
3) Na mesma aba/janela do browser acesse a URL: http://localhost:8380/cluster
4) A contagem deve continuar, ou seja, o cluster está funcionando pois mesmo acessando em outro JBoss a informação da sessão foi replicada.

É isso aí pessoal, qualquer dúvida é só fazer um post no JBUG Brasil

Abraço!
Adriano Schmidt

9 comentários:

  1. Ola Adriano, parabéns pelo post !
    Se entendi, nesse caso, temos 3 wildfly's rodando e fazemos o deploy através do master e ela é replicada para os demais do cluster.
    Mas, do ponto de vista do usuario, ele deve acessar um dos wildfly's, ou seja, no browser deve acessar http://localhost:8280/cluster ou http://localhost:8380/cluster.
    Qual a solucao para que o usuario possa conhecer um unico endereco de acesso e as requisicoes sejam distribuidas entre os servers ?

    []s

    ResponderExcluir
    Respostas
    1. Opa, para isso você teria que ter um HTTP Server na frente fazendo load balancer das requisições... assim o usuário sempre acessaria uma mesma URL (que seria o HTTP Server) e essa URL chamaria um dos WildFly.. nesse post explico isso: http://localhost8080.blogspot.com.br/2015/05/como-criar-um-load-balancer-e-cluster-com-wildfly8.html

      Qualquer dúvida comenta lá, abraço!

      Excluir
  2. Ótimo tutorial! Útil, simples, e funciona! Boa!

    ResponderExcluir
  3. Adriano, no caso seu exemplo foi configurado mais de 1 instancia no mesmo servidor ? e se eu tiver mais de um server individual ?

    ResponderExcluir
    Respostas
    1. Aqui eu mostro como fazer isso: http://localhost8080.blogspot.com.br/2016/09/load-balancer-com-wildfly-10.html

      Excluir
  4. Onde consigo baixar seu war pra testar o cluster novamente. Achei muito interessante sua variavel pra testar a replicação da sessão.
    Seu link ta OFF !!
    https://dl.dropboxusercontent.com/u/8155843/TDC%20Floripa%202015/cluster-example.war
    Se for dificil mandar o war, pode e encaminhar só código mesmo.

    ResponderExcluir
    Respostas
    1. qual seu e-mail? manda um email pra mim adriano@localhost8080.com.br

      Excluir
  5. Ola Adriano, parabéns pelo post!
    Estou com uma dificuldade em replicar esse seu post com diferentes hosts. Quando eu tenho servidores wwildfly no mesmo host, como vc fez no post, funciona muito bem porem em hosts diferentes a session não é replicada. Sabe me dizer o pq?

    ResponderExcluir
    Respostas
    1. opa... é diferente... tô na pressa aqui... mas eu tenho outros posts aqui no blog explicando como fazer isso..

      http://localhost8080.blogspot.com.br/search/label/wildfly

      Excluir