Páginas filhas
  • DSERTSS3-4208 - DT TRANSMITE - RabbitMQ - Alterar integração com a fila utilizando TNF (EDI-API e EDI-WORKER)

01. DADOS GERAIS

Produto:

TOTVS Transmite

Linha de Produto:

Linha Protheus

Segmento:

Backoffice

Módulo:TOTVS Transmite
Função:Não Há
País:Brasil
Ticket:Não Há
Requisito/Story/Issue (informe o requisito relacionado) :DSERTSS3-4208


02. SITUAÇÃO/REQUISITO

Hoje dentro do contexto de integração TSS x Transmite, a comunicação entre a API de entrada (edi-api), e o serviço de consolidação das informações (edi-worker), ocorre por meio de mensageria simples, utilizando o RabbitMQ como ferramenta. Inicialmente este processo foi desenhado sem a utilização de bibliotecas adicionais, utilizando-se apenas a linguagem nativa do produto (C#), conforme a literatura sobre o assunto orienta.

Com o passar do tempo, porém, foram identificados cenários de exceção nesta comunicação, como o aumento excessivo de conexões e canais estabelecidos com o RabbitMQ, causando instabilidades nos serviços. Em análise, foi constatado que devido ao volume de informações que circulam por esta integração, aliado a simplicidade com que a conexão com o RabbitMQ foi desenvolvida, gerou-se o ambiente para que esses cenários aflorassem.

Portanto, faz-se necessário a intervenção nessa comunicação para devolver essa integração a normalidade. Dentro da TOTVS, existe uma equipe que confecciona um biblioteca em C#, o TOTVS .NET Core Framework (TNF) https://tnf.totvs.com.br/home, para padronização de diversas tarefas, dentre elas a mensageria via RabbitMQ. Em contato com time responsável, chegou-se a conclusão que para o cenário atual, realizar a migração da comunicação para utilização do TNF pode trazer a estabilidade desejada para a integração. 

03. SOLUÇÃO

Partindo da premissa acima, para realizar a migração foi necessário:

  • Incluir a biblioteca do TNF nos projetos edi-api e edi-worker;
  • Criação dos eventos, baseados em classe base presente nesta, que serão disparados como objetos de comunicação entre os serviços;
  • Criação de exchanges, no edi-api, por onde os novos eventos serão publicados;
  • Alteração da estrutura geral do edi-worker, removendo o serviço anteriormente utilizado, substituindo-o pela implementação de consumidor base da biblioteca;
  • Criação de exchanges adicionais, filas, principal e complementares e vínculos entre estes, para que eventos publicados sejam devidamente recebidos.  

04. DEMAIS INFORMAÇÕES

Não Há.

05. ASSUNTOS RELACIONADOS

Não Há.