Cluster JBoss A-MQ : Master/Slave Network of Brokers utilizando Fuse Fabric

Introdução

Fuse Fabric é um sistema distribuído de configuração, gerenciamento e provisionamento para Apache Karaf, Apache ActiveMQ, ServiceMix, Apache Camel para nuvem pública ou privada, que trabalha com a noção de perfis, onde cada cada perfil pode ser entendido como uma lista de configurações.
Todos os perfis são gravados no Apache Zookeeper que é um confiável coordenador de serviços distribuídos responsável por proparagar automaticamente as configurações atualizadas entre todos os nós, além de gerenciar o lock (bloqueio) de cada nó master.

Alguns benefícios:

  • Configuração centralizada entre rotas/brokers distribuídos;
  • Crescimento dinâmico o qual é essencial para ambientes de Cloud;
  • Alta Disponibilidade (HA) para aplicações de missão crítica;
  • Utiliza OGSi e Apache Karaf criação de novos brokers;
  • Provê ferramenta centralizada para configuração e monitoração (Fuse Management Console);

fabric_master_slave

Master/slave

Este tutorial mostra em detalhes como configurar e executar uma  ActiveMQ network of brokers master/slave utilizando o Fuse Management Console (FMC) para simplificar a configuração e execução dos múltiplos brokers que serão criados.
Nesta estratégia somente um broker pode ter o status master por vez, assim os slaves aguardam a parada do master para que um deles se torne o novo master.
Criar uma topologia Master-Slave with Fabric é muito fácil, basta criar múltiplos brokers em um mesmo grupo e o resto fica por conta do Fabric.
No nosso exemplo vamos criar quatro instâncias: duas USA e outras duas Japan. O primeiro broker que for iniciado será o master do seu lado, enquanto o outro será o slave.
Por default os brokers são persistentes, pois utitilizam o perfil mq-base como base.
Não é o caso deste exemplo, mas se as instâncias estiverem em máquinas separadas e utilizando storage compartilhado, precisaríamos de configurações adicionais. Por ora vamos montar o ambiente localmente.
O benefício deste tipo de configuração é que não é necessário nenhuma estratégia de lock em storage compartilhado mesmo utilizando brokers não persistentes, pois o Zookeeper garante o bloqueio dos nós master.

Obs: ainda assim há a necessidade de um message store compartilhado para que o estados dos brokers sejam garantidos.

Networks

A conexão entre os brokers dos dois grupos é especificado através da opção networks.

Instalação

1) Download

O Red Hat JBoss Fuse pode ser baixo aqui: https://www.jboss.org/products/fuse.html

Obs: disponível somente para fins de Desenvolvimento.

2) Descompactar

Descompacte o Fuse em algum lugar de sua preferência. No meu caso descopactei em /opt do meu Fedora 18.

Configuração

1) users.properties

Altere o arquivo $fuse-diretorio/etc/users.properties descomentando a linha:

#admin=admin,admin

2) system.properties

Altere o arquivo $fuse-diretorio/etc/system.properties substituindo localhost pelo hostname da máquina virtual. No meu caso é o maquina:

# Activemq configuration
activemq.port = 61616
activemq.host = maquina
activemq.url = tcp://${activemq.host}:${activemq.port}

Inicialização

Execute o seguinte arquivo $fuse-diretorio/bin 

./fuse 

fuse

Criando o cluster

Execute os seguintes comandos para criar e incializar o cluster:

1) Instala o FMC:

fabric:create -p fmc

2) Cria os dois containers usa:

fabric:container-create-child root usa 2

Jmx Login for root: admin 

Jmx Password for root: admin 

3) Cria os dois containers japan:

fabric:container-create-child root japan 2

4) O seguinte comando cria o par master/slave de brokers no grupo usa-group e o liga com os brokers japan através do linkToJapan:

fabric:mq-create --group usa-group --networks linkToJapan --networks-username admin --networks-password admin --assign-container usa1,usa2 amq-usa-profile

5) O seguinte comando cria o par master/slave de brokers no grupo japan-group e o liga com os brokers usa através do linkToUsa:

fabric:mq-create --group japan-group --networks linkToUsa --networks-username admin --networks-password admin --assign-container japan1,japan2 amq-japan-profile

6) Lista todos os clusters

fabric:cluster-list

Management Console

Acesse a seguinte URL: http://localhost:8181

1

Obs: se não estiver conseguindo acessar o Managente Console, execute o seguinte comando para instalar o FMC:  fabric:create -p fmc

No próximo post mostrarei como criar um Produtor e um Consumidor utilizando o protocolo fabric

Até o próximo post!



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