Índice
- 1Objetivo
- 2Público alvo
- 3Pré-requisitos
- 4Alta Disponibilidade
- 5Configuração das instâncias Fluig ESB
- 6Criação e deploy dos diagramas de integração nas instâncias Fluig ESB
- 7Considerações sobre o ambiente de alta disponibilidade
- 8Balanceamento de Carga
- 9Configuração das instâncias Fluig ESB
- 10Criação e deploy dos diagramas de integração nas instâncias Fluig ESB
- 11Considerações sobre o ambiente de balanceamento de carga
Objetivo
Este guia tem como finalidade, descrever de forma objetiva, passo a passo, todos os procedimentos necessários para a configuração do produto Fluig ESB para suportar alta diponibilidade e balanceamento de carga.
Público alvo
A configuração de alta disponibilidade e balanceamento de carga devem ser realizada por profissionais com experiência em instalação de aplicativos e com conhecimentos de ambiente de rede.
Pré-requisitos
Antes da instalação consulte as documentações de dimensionamento e configuração de banco de dados para garantir que o ambiente onde o Fluig ESB será instalado está homologado.
Fluig ESB Server
É obrigatório a utilização da mesma versão do Fluig ESB Server (versão 12.2.x ou superior) em todos os servidores identificados no guia como “ESB Server Cluster Node” ou “ESB Server Cluster Master” para utilização em Alta Disponibilidade e Balanceamento de carga respectivamente.
Este documento não cobre o procedimento de instalação e configuração do Fluig ESB Server. Para obter mais detalhes sobre a instalação do produto, verifique o documento Guia de instalação Fluig ESB.
É obrigatória a sincronização dos relógios em todos os servidores que utilizem o Fluig ESB Server em ambiente de Alta disponibilidade. Para isso é recomendado utilizar o protocolo NTP. O guia de instalação e configuração pode ser localizado em: NTP.br. Para redes Windows® também pode ser utilizado o Active Directory®.
TOTVS | License Server
Cada instância do Fluig ESB Server deve possuir uma licença disponível no License Server para sua correta execução e inicialização.
Para que não seja necessário utilizar o servidor de licenças, é obrigatório que os diagramas executados nas instâncias do Fluig ESB Server contenham somente componentes do tipo TOTVSReceiver e TOTVSSender para a troca de mensagens entre soluções TOTVS.
TOTVS | Developer Studio
É obrigatório a utilização do TOTVS | Developer Studio (11.x ou superior) em conjunto com o Fluig ESB Plugin (versão 12.x ou superior) instalado.
O TOTVS | Developer Studio é utilizado para a criação dos mapas de integração que serão executados nos Fluig ESB Servers configurados em Cluster bem como realizar a configuração dos Fluig ESB Server Cluster Nodes.
Este documento não cobre o procedimento de instalação e configuração do TOTVS | Developer Studio. Para obter mais detalhes sobre a instalação do produto, verifique o procedimento de instalação no endereço http://ds.totvs.com.
Banco de Dados
Visando garantir a alta disponibilidade da base de dados, recomenda-se que este também esteja sob um cluster quando utilizado no cenário de alta disponibilidade do Fluig ESB Server. (vide documentação do banco de dados utilizado).
Alta Disponibilidade
Cenário 1 - Alta Disponibilidade
Definição
Um sistema de alta disponibilidade é um sistema resistente a falhas de software e energia, cujo principal objetivo é manter os serviços online o máximo de tempo possível.
Descrição do cenário
O cenário apresenta três instâncias do Fluig ESB Server configuradas para trabalhar de forma sincronizada formando assim um só Fluig ESB Server Virtual. Todas as instâncias do Fluig ESB Server são configurados para compartilhar o mesmo banco de dados. O Monitoramento das mensagens poderá ser realizado utilizando o Fluig ESB Monitor, acessível a partir de qualquer uma das instâncias do cluster Fluig ESB Server.
Fluig ESB Server – Nomenclatura das instâncias
MÁQUINA 1: Fluig ESB Server Cluster Node 1
MÁQUINA 2: Fluig ESB Server Cluster Node 2
MÁQUINA 3: Fluig ESB Server Cluster Node 3
Configuração das instâncias Fluig ESB
Fluig ESB Server Cluster Nodes
Criação e deploy dos diagramas de integração nas instâncias Fluig ESB
Criação dos diagramas
Para que o Fluig ESB funcione corretamente com a configuração em cluster de alta disponibilidade, é necessário que o mesmo diagrama execute simultaneamente nas instâncias do cluster para que ocorra o resultado esperado. Dessa maneira, quando algum das máquinas que faz parte do cluster venha a ficar indisponível, o diagrama continuará a ser executado pelos demais nós do cluster.
Para criar um novo diagrama vamos utilizar o TOTVS | Developer Studio com o plugin do Fluig ESB.
Considerações sobre o ambiente de alta disponibilidade
Teste de execução
Para testar o funcionamento do Fluig ESB em alta disponibilidade, utilize o aplicativo SoapUI para gerar um cliente web service que envie mensagens para os nodos do ESB.
O SoapUI possui uma versão open source e pode ser baixado através do endereço http://www.soapui.org/.
Baixe e instale o SoapUI.
Antes de criarmos um projeto de testes no SoapUI, precisamos obter o endereço WSDL dos serviços Web do Fluig ESB. Para isso, acesse a URL abaixo através de qualquer navegador de internet:
http://[ip-do-servidor]:[porta]/ws, onde:
ip-do-servidor = endereço IP da máquina 1
porta = 8085 – porta padrão do serviço web
Em nosso exemplo vamos acessar a URL: http://10.80.69.173:8085/ws/. A página abaixo deve ser carregada, e o link selecionado deve ser acessado para exibir o WSDL dos serviços do Fluig ESB.
Considerações funcionamento dos componentes do Fluig ESB em ambiente de cluster de alta disponibilidade
Quando configurado como Cluster de alta disponibilidade, o Fluig ESB irá trabalhar melhor com componentes do tipo “Receiver” que sejam considerados “Ativos” caso o cenário de integração deva ter somente um ponto de entrada centralizado. Com isso, o Fluig ESB é capaz de realizar a leitura de um único repositório de entrada para processar as mensagens.
Componentes “Receiver” ativos são aqueles que possuem a capacidade de trabalhar buscando mensagens de repositórios através de agendamento pela opção “Interval”.
Contudo, é necessário que o intervalo de agendamento na opção “Interval” seja “diferenciado” entre os Receivers das máquinas que trabalham em alta disponibilidade.
Isso significa que o mesmo diagrama deve executar em todos os nós do cluster, mas o intervalo de pooling deve ser diferente entre eles.
Para isso, o diagrama pode ser replicado no TOTVS | Developer Studio para cada máquina, onde a única diferença é o intervalo de leitura do componente Receiver do tipo ativo. Basta copiar e colar o projeto .esb original informando um novo nome na aba “ESB Navigator”.
Para o exemplo em questão, os diagramas ficariam dispostos conforme a imagem abaixo no TOTVS | Developer Studio:
Segue abaixo a lista de componentes do tipo Receiver do Fluig ESB “Ativos”, indicados para trabalhar com cluster de Alta Disponibilidade:
- FILEReceiver
- FTPReceiver
- MAILReceiver
- JMSReceiver
- HTTPReceiver
- TOTVSReceiver (somente DATASULReceiver)
Para utilizar diagramas em cluster de alta disponibilidade que utilizem componentes Receiver do tipo passivo, é recomendado utilizar a configuração de cluster de Load Balancing (balanceamento de carga), onde é adicionado mais um Fluig ESB Server Cluster Proxy para redirecionar o processamento das mensagens para os componentes Receivers do tipo passivo.
Esta configuração é exemplificada no próximo capítulo.
Balanceamento de Carga
Cenário 2 - Balanceamento de carga
Definição
Esse tipo de cluster tem como função controlar a distribuição equilibrada do processamento. Requer um monitoramento constante na sua comunicação e em seus mecanismos de redundância, pois se ocorrer alguma falha, haverá uma interrupção no seu funcionamento. É composto por um conjunto de servidores Fluig ESB configurados para receber a distribuição de carga de um servidor Fluig ESB Master, permitindo ao máximo a divisão da carga do ambiente para o usuário através de políticas de balanceamento de carga.
Descrição do cenário
O cenário apresenta três instâncias do Fluig ESB Server configuradas para trabalhar de forma independente. Todas as instâncias do Fluig ESB Server são configuradas para compartilhar o mesmo banco de dados, e recebem a carga da rede através de um servidor Fluig ESB Master (com servidor de banco de dados isolado das demais instâncias), que pode dividir a carga através de dois tipos de políticas:
1. ROUND ROBIN
Política utilizada quando a capacidade de processamento das máquinas que receberão a distribuição de carga é desconhecida. Com esta política habilitada, o Fluig ESB Cluster Master dividirá a carga igualmente entre os demais Fluig ESB Servers de destino.
2. WEIGHTED ROUND ROBIN
Política utilizada quando a capacidade de processamento das máquinas que receberão a distribuição de carga é conhecida e diferente. Isso significa que o Fluig ESB Cluster Master poderá enviar cargas diferenciadas de acordo com o servidor de destino. Com esta política habilitada, o Fluig ESB Cluster Master poderá ser configurado para enviar rajadas de requisições diferenciadas entre os demais Fluig ESB Servers de destino.
O monitoramento das mensagens poderá ser realizada utilizando o Fluig ESB Monitor acessível a partir de qualquer uma das instâncias do Fluig ESB Server.
Fluig ESB Server – Nomenclatura das instâncias
- MÁQUINA LOAD BALANCING: TOTVS | ESB Server Cluster Master 1
- MÁQUINA 1: TOTVS | ESB Server Node 1
- MÁQUINA 2: TOTVS | ESB Server Node 2
- MÁQUINA 3: TOTVS | ESB Server Node 3
Configuração das instâncias Fluig ESB
Fluig ESB Server Nodes
Para configurar as quatro máquinas com o Fluig ESB Server, siga os passos descritos no item 4.4 até o passo 7 para cada uma das instâncias do Fluig ESB.
Atenção
Ao configurar o novo servidor na view “Servers” para o Cluster Master (Proxy de balanceamento de carga), informe na propriedade “Server Name” o valor “Maquina Cluster Master (Proxy)”.
Não é necessário configurar as três instâncias como federação de cluster de alta disponibilidade. Após o processo de criação dos servidores no TOTVS | Developer Studio, a view “Servers” deverá estar conforme a imagem abaixo:
Para configurar a máquina Fluig ESB Server (Maquina Cluster Master) que irá trabalhar como Proxy de balanceamento de carga, siga os passos adicionais abaixo:
Criação e deploy dos diagramas de integração nas instâncias Fluig ESB
Criação dos diagramas
Para que o Fluig ESB funcione corretamente com a configuração em cluster de balanceamento de carga, não é necessário que o mesmo diagrama execute simultaneamente nas instâncias do cluster para que ocorra o resultado esperado.
Cada máquina contendo uma instância do Fluig ESB Server pode conter diagramas diferenciados, mas para efeitos didáticos assumiremos que todas as máquinas irão executar o mesmo diagrama.
Somente a instância do Fluig ESB Server configurado como cluster master em balanceamento de carga irá executar um diagrama diferente, com o objetivo de distribuir a carga entre os demais Fluig ESB Servers.
Para confeccionar os diagramas das 03 máquinas que executam o Fluig ESB Server, execute os passos 1 a 12 a partir do item 6.1 (Criação dos diagramas).
Siga os passos abaixo para criar o diagrama que deve executar na máquina Fluig ESB Server Master:
Conforme descrito no passo 4 do item 6.1, crie um novo diagrama do Fluig ESB com o nome “LoadBalancingDiagram.esb”
Considerações sobre o ambiente de balanceamento de carga
Teste de execução
Para testar o funcionamento do Fluig ESB em balanceamento de carga, basta reiniciar todas instâncias do Fluig ESB, e disponibilizar 13 arquivos texto no diretório C:\TEMP\RESOURCES.
O Fluig ESB Cluster Master (Proxy) deverá distribuir a carga da seguinte maneira:
- Máquina 1 – receberá 1 arquivo
- Máquina 2 – receberá 4 arquivos
- Máquina 3 – receberá 8 arquivos
Caso deseje alterar a política de distribuição da configuração de balanceamento de carga para ROUND ROBIN, efetue a alteração na configuração da instância Fluig ESB de proxy, salve e reinicie o servidor Fluig ESB Cluster Master (Proxy).
Ao postar novamente 13 arquivos no diretório C:\TEMP\RESOURCES, o resultado será:
- Máquina 1 – receberá 5 arquivos
- Máquina 2 – receberá 4 arquivos
- Máquina 3 – receberá 4 arquivos
Sendo que a máquina 1 receberá o 1º e o último arquivo da instância Fluig ESB configurada como proxy de balanceamento de carga.
Observações
Não utilizamos o SoapUI nos testes pois a instância Fluig ESB configurada para balanceamento de carga faz exatamente a mesma função, enviando via web services o conteúdo dos arquivos TXTs lidos do diretório C:\TEMP\RESOURCES.
Considerações funcionamento dos componentes do Fluig ESB em ambiente de cluster de alta disponibilidade
Quando configurado como Cluster de balanceamento de carga, o Fluig ESB irá trabalhar com quaisquer tipo de componentes.
Na configuração de balanceamento de carga, podemos ter diagramas diferentes, cada um executando em um Nodo respectivo. Isso é possível, pois ficará a cargo do Fluig ESB Cluster Master1 redirecionar a carga para cada instância dos Fluig ESB Server Nodes (máquinas 1, 2 e 3).
É importante lembrar que este capítulo não está configurando as instâncias dos Fluig ESB Server Nodes com alta disponibilidade. Caso uma das instâncias venha a ficar indisponível, o processamento dessa instância ficará indisponível até que ela volte a ficar online.