Linha de Produto: | RM |
Situação/Requisito: | Implementar método de subida dos Consumers AMQP, conforme discutido em grooming e descrito no documento (DEAI1-2476 - Arquitetura AMQP). |
Tickets relacionados: | DEAI1-2537 |
Elaborar o documento técnico que orientará a implementação do canal de comunicação AMQP no EAI 2.0.
A primeira versão do documento técnico foi desenvolvido considerando o escopo e restrições listados abaixo.
A parametrização do tipo de canal de envio será realizada a partir do cadastro de aplicativos no EAI 2.0
A parametrização da fila de recebimento será realizada a partir da conjunção do produto (RM) com o source application interno da configuração do EAI 2.0 no formato ([SourceApplication]@[Produto])
A parametrização de subida dos consumidores da fila de recebimento AMQP será realizada a partir do arquivo de configuração do RM.Host e será dado através dos parâmetros citados abaixo.
Somente serão instanciados Consumers em RM.Hosts que possuam o parâmetro AMQPConsumerServiceEnabled ativo e que tenham integrações ativas com o canal de comunicação AQMP.
<?xml version="1.0"?> <configuration> <appSettings> <add key="AMQPConsumerServiceEnabled" value="true" /> </appSettings> </configuration>
Indica se o serviço que instancia os consumidores de fila do canal de comunicação AMQP será habilitado no EAI
Parâmetro do tipo lógico com valor padrão definido como falso.
<?xml version="1.0"?> <configuration> <appSettings> <add key="AMQPConsumerServiceThreads" value="3" /> </appSettings> </configuration>
Indica a quantidade de threads de consumidores de fila do canal de comunicação AMQP que serão instanciadas na subida do Host
Parâmetro do tipo inteiro com valor padrão definido como 1.
<?xml version="1.0"?> <configuration> <appSettings> <add key="AMQPConsumerServiceHealthCheckInterval" value="15" /> </appSettings> </configuration>
Indica o intervalo de tempo (em minutos) em que o serviço que instancia os consumidores de fila do canal de comunicação AMQP realizará a verificação de saúde dos canais e caso seja necessário recria as instâncias dos consumidores com suas devidas conexões para que minimizemos o período de perda de conexão.
Parâmetro do tipo inteiro com valor padrão definido como 10.
<?xml version="1.0"?> <configuration> <appSettings> <add key="AMQPConsumerServicePrefetch" value="1" /> </appSettings> </configuration>
Indica a quantidade de mensagens que os consumidores de fila do canal de comunicação AMQP irão obter da fila de recebimento.
Parâmetro do tipo inteiro com valor padrão definido como 1.
O controle de autenticação e autorização foi melhor estudado e definido no Spike documentado no documento disponível em : DEAIFOUNDATION-136 - Autenticação e autorização na comunicação via AMQP.
A autenticação dos Consumers AMQP é realizada por login de serviços, seguindo o padrão dos NotifyServers que são instanciados na subida do Host.
Atualmente o login de serviços faz o vínculo de forma fixa com o usuário "RM", devendo assim ser atribuído a este usuário todas as permissões necessárias para os processos de integração que serão recebidos via AMQP.
O protocolo é suportado pelo EAI 2.0 na sua versão 0.9.1