Páginas filhas
  • DT DEAI1-2537 Suporte AMQP - Linha RM


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



Objetivo

Elaborar o documento técnico que orientará a implementação do canal de comunicação AMQP no EAI 2.0.

Definições Gerais

A primeira versão do documento técnico foi desenvolvido considerando o escopo e restrições listados abaixo.

Escopo e Restrições

  • A parametrização do canal de envio (AMQP) deverá ser realizada no cadastro do aplicativo integrado.
  • Será utilizada a Exchange padrão para envio e recebimento de mensagens. 
    • A Exchange padrão é do tipo Direct, orientada por RoutingKey (nome da fila).
  • Os aplicativos irão consumir, na Exchange padrão, a fila com RoutingKey igual seu AppId (padrão [Aplicativo]@[SourceApplication]) para recebimento de mensagens.
  • Será utilizado o padrão RPC para a comunicação, viabilizando assim o aguardo da mensagem de resposta, conforme o protocolo de Mensagem Padronizada.
  • O serviço de execução de consumidores da fila de mensagens AMQP será inicializado automaticamente com durante a subida do RM.Host, de acordo com a parametrização no arquivo de configurações do RM.Host.
  • O protocolo AMQP é suportado pelo EAI 2.0 na sua versão 0.9.1

Definições da Regra de Negócio

Configurações

Canal de Envio

A parametrização do tipo de canal de envio será realizada a partir do cadastro de aplicativos no EAI 2.0

Fila de Recebimento

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])

Parametrização de Subida dos Consumidores da fila de Recebimento

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.

AMQPCONSUMERSERVICEENABLED

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

AMQPCONSUMERSERVICETHREADS

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

AMQPCONSUMERSERVICEHEALTHCHECKINTERVAL

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

AMQPCONSUMERSERVICEPREFETCH

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

Autenticação e Autorização

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.

Protocolo

AMQP

O protocolo é suportado pelo EAI 2.0 na sua versão 0.9.1