JBoss Clustering – Parte 1

Postado em Atualizado em

Hoje vamos iniciar uma séries de posts sobre cluster no JBoss AS 5 e 6. JBoss clustering não é o produto de uma única biblioteca ou uma especificação, mas sim um conjunto de tecnologias. Um cluster de servidores de aplicação JBoss, é composto por várias instâncias ( nós ) executados simultâneamente visando alcançar escalabilidade e confiabilidade. Os nós podem estar na mesma máquina ou em máquinas diferentes. Para o cliente isso é  irrelevante porque o cluster aparece como uma única instância do servidor.

Os benefícios do cluster incluem:

  • Escalabilidade: É possível aumentar o poder de processamento do cluster, conforme o aumento da carga. Basicamente deve-se adicionar um novo nó para que o cluster passe a atender uma carga maior do que a prevista inicialmente.
  • Balanceamento de Carga: Consistem em distribuir a carga entre os nós participantes do cluster, evitando que somente um nó seja sobre-carregado ocasionando a sua queda.
  • Alta Disponibilidade: Os aplicativos executados no cluster, podem continuar disponíveis mesmo se um dos nós participantes falhar.

O JBoss AS já vem com suporte nativo a clusterização, localizado no profile  JBOSS_HOME/server/all . Para que o JBoss esteja em cluster os nós das instâncias devem ser agrupados em partições. Como dito anteriormente os nós podem estar na mesma máquina ou em máquinas diferente, mas é necessário que cada nó tenha endereços de IP diferentes.

Na figura a abaixo, você pode ver  um cluster composto de dois nós na mesma partição (DefaultPartition), cada um com seu endereço IP atribuído.

 

Você também pode ter múltiplas partições cluster rodando na mesma rede. A fim de diferenciá-los, cada grupo deve ter um nome individual e multicast endereço/porta.  Na imagem abaixo, temos um  cenário  com duas partições, ou seja, partition1 e partition2, cada um com dois membros do cluster e endereço de multicast distintos.
Veja o conceito de Multicast na Wikipedia. Para realização a comunicação entre os nós do cluster o JBoss utiliza uma biblioteca chamada JGroups.  Na inicialização do JBoss, o JGroups disponibiliza um conjunto de canais que têm a capacidade para descobrir  um ao outro de forma dinâmica através da troca de pacotes multicast. Todas as mensagens enviadas e recebidas  utilizando o canal tem que passar através do protocolo na stack. O conhecimento da stack não é necessário,  a menos que você precise ajustar os valores padrão ou realizar configurações extras.Acompanhem o próximo post.
Abraços.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s