Índice

Prefácio

Finalidade

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 devemser realizada por profissionais com experiência em instalação de aplicativos e com conhecimentos de ambiente de rede.

Servidor fluig | ESB

Para o servidor fluig | ESB os seguintes requisitos são necessários:


Banco de Dados

O Banco de dados deve ser instalado no servidor, a escolha e adoção de qual banco de dados utilizar é uma opção do cliente. O servidor de aplicação oferece suporte a praticamente qualquer banco de dados que seja compatível com a especificação JDBC. Entretanto, os bancos de dados homologados para fluig | ESB são:

A documentação para a instalação e administração do banco de dados pode ser encontrada no site de cada um dos respectivos fornecedores. O banco de dados do fluig | ESB será criado automaticamente pelo servidor de aplicação, logo não é necessário nenhum procedimento para a criação das tabelas e campos do banco de dados. O servidor de aplicação vai atualizar a base automaticamente na primeira execução da aplicação, sendo necessário apenas que o banco já esteja criado e disponível para acesso.


Pré-Requisitos

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 Instalacao fluig ESB.pdf” disponível junto com a mídia de instalação do fluig | ESB Server.

É obrigatório 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 | Licence Server

Cada instância do fluig | ESB Server deve possuir uma licença disponível no fluig | Licence 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 cojunto 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 03 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 realizada 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

 


Configuração das instancias fluig | ESB

fluig | ESB Server Cluster Nodes

Inicie as isntâncias do fluig | ESB Server Cluster Node das máquinas 1, 2 e 3; 

Abra o fluig | Developer Studio e acesse a perspectiva “TOTVS Servers”;

Na view “Server Extension”, efetue um clique com o botão direito do mouse e selecione a opção “Novo grupo de Servidores” para configurar um novo grupo de servidores chamado fluig | ESB Cluster;

Configure o acesso ao servidor da máquina 1. Para isso efetue um clique com o botão direito do mouse sobre o grupo de servidor “fluig | ESB Cluster” e selecione a opção TOTVS ESB  ESB Server.

Informe na opção “Server Name” o valor Maquina 1, e em “Host” e “Port” o IP e a porta em que está executando o fluig | ESB. Clique no botão “Finish” para confirmar.

Abra o arquivo de confguração da máquina 1, efetuando um duplo clique sobre o seu nome na view “Server Extension”.

Configure o banco de dados do fluig | ESB Server da máquina 1 para utilizar o banco de dados que será compartilhado por todas as instâncias fluig | ESB Server. Neste exemplo utilizaremos um banco de dados MySQL Server 5.5, com acesso ao schema “esbcluster”. A configuração é feita acessando a aba “Database Configuration” na configuração fluig | ESB Server.

Acesse a aba “Cluster Configuration”;

Na opção “Cluster Name”, informe o nome da máquina na caixa de texto “Name”. Digite “ESBClusterNode1”;

Habilite a opção “Enable High-Avaliability”;

Alimente a tabela “Cluster Nodes HA” com os endereços IP e Porta dos respectivos fluig | ESB Servers 2 e 3.

  • Clique no botão “+” para adicionar um novo servidor;

  • Na opção “Hostname/IP” informe o IP do fluig | ESB Server que irá executar na maquina 2;

  • Na opção “Port” informe a porta do ESB na máquina remota;

  • Repita o processo para configurar o fluig | ESB Server Cluster Node 3, informando seu respectivo IP e Porta.

  • A configuração deverá ficar como a imagem abaixo:

Clique no botão “Salvar” para confirmar as configurações.

O console do fluig | ESB Server deve apresentar o resultado conforme a imagem abaixo:

Reinicie o fluig | ESB Server Cluster Node da máquina 1.

Repita os passos a partir do item 4 para configurar os servidores 2 e 3.

 

No passo 15, quando chegar o momento de configurar o item 9 novamente para os servidores 2 e 3, tome o cuidado de:

  • As referências a configuração da “maquina 1” devem ser entendidas como “maquina 2” quando estiver configurando a máquina 2.

  • As referências a configuração da “maquina 1” devem ser entendidas como “maquina 3” quando estiver configurando a máquina 3.

  • Na opção “Name” do Custer Name, informe ESBClusterNode2 e ESBClusterNode3 para os servidores das máquinas 2 e 3 respectivamente.

  • No servidor ESBClusterNode2, informar os endereços IP e porta dos servidores 1 e 3

  • No servidor ESBClusterNode3, informar os endereços IP e porta dos servidores 1 e 2.


Criação e deploy dos diagramas de integração nas instancias 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.

Abra o TOTVS | Developer Studio e acesse a perspectiva “fluig ESB”;

Na view “ESB Navigator”, efetue um clique com o botão direito do mouse e selecione a opção “New  ESB Project” para criar um novo projeto de diagramas do fluig | ESB.

Na view “ESB Navigator”, efetue um clique com o botão direito do mouse e selecione a opção “New  ESB Project” para criar um novo projeto de diagramas do fluig | ESB. Clique em “Finish” após informar o nome do projeto, seu título e uma descrição.

Na view “ESB Navigator”, efetue um clique com o botão direito do mouse sobre o projeto “ESBCluster” e selecione a opção “New  ESB Diagram” para criar um novo diagrama do fluig | ESB. Clique em “Finish” após informar o nome do diagrama.

Crie um diagrama WSChannelReceiver  FileSender conforme o exemplo abaixo:

Configure as propriedades do componente WSChannelReceiver conforme o exemplo abaixo:

Configure as propriedades do componente FileReceiver conforme o exemplo abaixo. É importante ressaltar que a propriedade “Directory” deve apontar para um diretório de rede ou storage.

 

Salve o diagrama clicando sobre o botão “Salvar” ou “Salvar todos”.

Efetue o “deploy” do diagrama para o servidor da máquina 1, clicando com o botão direito do mouse sobre o diagrama aberto, e selecionando a opção “Deploy to ESB Server...”.

Efetue o “deploy” do diagrama para o servidor da máquina 1, clicando com o botão direito do mouse sobre o diagrama aberto, e selecionando a opção “Deploy to ESB Server...”.

Repita o processo de deploy a partir do passo 9 para as máquinas 2 e 3.

Reinicie as 03 máquinas. O fluig | ESB configurado para alta disponibilidade estárá funcinando.


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 webservice 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 ter 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 maquina 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 exibida, e o link selecionado deve ser acessado para exibir o WSDL dos serviços do fluig | ESB.

O WSDL deve ser exibido no navegador de internet para o endereço http://10.80.69.173:8085/ws/esb/ESBWebService?wsdl conforme a imagem abaixo. Copie a URL deste endereço para utilizar no SOAPUI.

De posse do endereço do WSDL dos serviços do fluig | ESB, execute o SOAPUI, e crie um novo projeto clicando no menu File  New soapUI Project, conforme a figura abaixo:

Na opção “Project Name” informe: Teste Maquina 1 Na opção “Initial WSDL/WADL” informe o endereço WSDL dos serviços do fluig | ESB. Clique no botão “OK” para confirmar a criação do projeto.

Repita o processo de criação para os endereços das máquinas 2 e 3 a partir do passo 4, bastando somente modificar o endereço IP da respectiva máquina durante a criação do projeto no SOAPUI.

Após o passo 5, o SOAPUI deve conter 03 projetos para podermos enviar mensagens para cada um dos nós do cluster.

Para enviar uma mensagem de teste ao fluig | ESB Server da máquina 1, abra o projeto “Teste Maquina1”, expanda o método “sendMessage” e efetue um duplo clique no “Request 1”.

Será aberta uma janela para iniciar um teste de requisição ao serviço “sendMessage” do fluig | ESB, conforme apresenta a imagem abaixo:

Altere o envelope SOAP da requisição para que envie a mensagem “Mensagem Teste ao fluig | ESB Cluster” para o componente WSChannelSender. Para isso altere o conteúdo dos elementos <message/> e <queue/>, e clique no botão “Submit request to specified endpoint URL” conforme a imagem abaixo:

O ESB deve responder conforme as imagens abaixo:

Acesse o diretório y:\temp\resources confira que um arquivo foi adicionado com o conteúdo “Mensagem Teste ao TOTVS | ESB Cluster”.

Repita o mesmo processo com os projetos das máquinas 2 e 3 para validar o funcionamento do ambiente de cluster.

 

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 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.

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 compoenete 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 imangem 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:


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 e 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 03 instâncias do fluig | ESB Server configuradas para trabalhar de forma independente. Todas as instâncias do fluig | ESB Server são configurados 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 02 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

 

Configuração das instâncias fluig | ESB

 

TOTVS | ESB Server Nodes

Para configurar as 04 máquinas com o fluig | ESB Server, siga os passos descritos no Capítulo 3 (página 7) até o item 7 (para cada instância 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 03 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:

Acesse a aba “Cluster Configuration”;

Na opção “Cluster Name”, informe o nome da máquina na caixa de texto “Name”. Digite “ESBClusterMaster1”;

Habilite a opção “Enable Load Balancing”;

 Selecione a política desejada:
  • Round Robin (padrão) ou
  • Weighted Round Robin

Vamos configurar a opção Weighted Round Robin. Vamos informar que a maquina 1 irá receber uma rajada de 1 mensagem, a maquina 2 uma rajada de 4 mensagens e o servidor 3 uma rajada de 8 mensagens.

Para isso, informe o seguinte valor no campo “Distribution Ratio”: 1:4:8

Salve a configuração e reinicie o fluig | ESB Cluster Master (proxy)

O console do fluig | ESB Server deve apresentar o resultado conforme a imagem 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 dos itens 1 a 12 a partir da página 12.

 

Siga os passos abaixo para criar o diagrama que deve executar na máquina fluig | ESB Server Master:

Conforme descrito no item 4 da página 14, crire um novo diagrama do fluig | ESB com o nome “LoadBalancingDiagram.esb”

Configure o diagrama conforme o exemplo abaixo: (01 FileReceiver enviando para 03 WSSenders)

Configure as propriedades do componente FileReceiver conforme o exemplo abaixo:

Configure as propriedades do componente WSSenderMaquina1 conforme o exemplo abaixo:

a. Na opção “WSDL Path” informe: http://ip_maquina_1:8085/ws/esb/ESBWebService?wsdl (informando o endereço IP da maquina 1 no lugar de “ip_maquina_1”);

b. Clique no botão “List Operations”

c. No combo “Operation”, selecione a opção “sendMessage”

d. Adicione um parâmetro com o nome “message” do tipo “ESBMessage” na coluna “Data Type” e com o campo “value” em vazio

e. Adicione mais um parâmetro com o nome “queue” do tipo “Text” contendo o valor “WSChannelReceiver” no campo “value”.

f. A configuração deverá ficar conforme a imagem abaixo:

Efetue a mesma configuração para os componentes WSSenderMaquina2 e WSSenderMaquina3 levendo em consideração somente o endereço IP do campo WSDL Path, que deve apontar para IP correspondente a máquina 2 e a máquina 3.

Salve o diagrama clicando em um dos botões “Save” ou “Save All”

Efetue deploy do diagrama para o servidor fluig | ESB Cluster Master (Proxy) conforme descrito a partir do item 9 na página 15.

 

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 reinicar 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:

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á:

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 webservices 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 qualquer 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 de dos fluig | ESB Server Nodes (maquinas 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.