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

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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


Índice


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 consumo execução de consumidores da fila de mensagens AMQP será inicializado automaticamente com o servidor de aplicaçãodurante 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 ([ProdutoSourceApplication]@[SourceApplicationProduto])

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 servidor de aplicação 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

Bloco de código
languagexml
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="AMQPServerAMQPConsumerServiceEnabled" value="true" />
    </appSettings>
</configuration>

Indica se o servidor serviço que instancia os consumidores de fila do canal de comunicação AMQP será habilitado na subida do servidor de aplicação.no EAI

Parâmetro do tipo lógico com valor padrão definido como falso.

...

AMQPCONSUMERSERVICETHREADS

Bloco de código
languagexml
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="AMQPServerThreadsAMQPConsumerServiceThreads" value="3" />
    </appSettings>
</configuration>

Indica a quantidade de threads que serão criadas para o consumo da fila de recebimento.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

Bloco de código
languagexml
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="AMQPServerPoolingIntervalAMQPConsumerServiceHealthCheckInterval" value="1015" />
    </appSettings>
</configuration>

Indica o período intervalo de tempo (em minutos o qual o servidor AMQP irá realizar a verificação da saúde da conexão dos consumidores de fila e definidos na configuração do canal ) 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

Bloco de código
languagexml
<?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 AMQP é suportado pelo EAI 2.0 na sua versão 0.9.1

...