Microsserviços: Rastreamento de Transação Distribuída | MuleSoft Blog

Microsserviços: Rastreamento de Transação Distribuída | MuleSoft Blog

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Com o advento dos microsserviços, as funcionalidades que costumavam ser agrupadas em um único aplicativo web / mule agora estão sendo executadas em diferentes contêineres nas VMs e, às vezes, nos datacenters. Isso representa um enorme desafio para rastrear transações à medida que elas atravessam os limites do contêiner / VM.

Para enfrentar esse desafio, as empresas criam uma solução personalizada de rastreamento distribuído, cara, demorada e cria desafios de manutenção. Várias iniciativas de código aberto foram criadas para resolver isso da Apache Foundation, CNCF e outras que estão em conformidade com o padrão do setor OpenTracing. Embora conceitualmente todos funcionem da mesma maneira, existem algumas nuances em suas implementações. Alguns são escritos em Java para versatilidade e outros em GO para velocidade. Algumas das estruturas populares são Zipkin, Jaeger e Hawkular.

Benefícios do rastreamento distribuído

O rastreamento distribuído fornece os seguintes benefícios:

  • Propagação de contexto distribuído
  • Monitoramento de transação distribuída
  • Análise de causa raiz
  • Análise de dependência de serviço
  • Otimização de desempenho / latência

Como isso é diferente do rastreamento baseado em log?

As empresas que investiram pesadamente na agregação de logs e nas plataformas de visualização geralmente usam o rastreamento baseado em mensagens de log. A diferença entre isso e o OpenTracing é que o rastreamento baseado em log é reativo e há um intervalo de tempo significativo entre o momento em que um evento ocorre e o momento em que é refletido no painel. O OpenTracing fornece rastreamento em tempo real.

Leia Também  7 maneiras em que o OpenText capacita as empresas de software a possibilitar a transformação digital

Estrutura do OpenTracing: Diagrama lógico

O diagrama acima pode ser resumido em duas categorias principais de componentes: componentes do lado do cliente e componentes do lado do servidor.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Componentes do lado do cliente

  • Cliente OpenTrace
    • Um conector ou um serviço auxiliar que captura rastreamentos e / ou extensões e envia esses eventos para um agente.
    • O usuário usará métodos da API OpenTrace, como iniciar, finalizar, injetar, extrair, marcar e registrar para criar eventos de rastreamento
  • Agente OpenTrace
    • Normalmente, este é co-localizado junto com os microsserviços para obter benefícios ótimos de desempenho.
    • Coleta eventos de rastreamento dos clientes OpenTrace e entrega essas mensagens para um coletor quase em tempo real.

Componentes do lado do servidor

  • Colecionador
    • Essa é uma fila de alta capacidade na memória.
    • Como o nome indica, ele coleta as mensagens / eventos do agente e os entrega ao banco de dados Cassandra / ElasticSearch.
    • Ele limita as mensagens recebidas de vários coletores e as entrega ao banco de dados.
    • Quando o volume de mensagens recebidas é maior que a capacidade de processamento do DB, reduz a frequência de amostragem.
  • ElasticSearch Database
    • O banco de dados NOSQL armazena os eventos para processamento pelo sistema de consulta OpenTrace.
    • Você pode usar o banco de dados Cassandra em vez do ElasticSearch.
  • Sistema de consulta
    • Isso consulta o banco de dados NOSQL e fornece os dados para a interface do usuário para renderização.
  • UI
    • A interface do usuário exibe os dados de rastreamento.

Implementando rastreamento distribuído para microsserviços Mule

As alterações específicas da mula estão envolvidas principalmente no lado do cliente. Usamos o padrão sidecar para implementar o rastreamento para microsserviços Mule, onde agrupamos dois contêineres do Docker no mesmo pod. Um deles é o microsserviço Mule, que cria os eventos de rastreamento, extensão e o outro é um contêiner auxiliar que realmente intercepta e delega esses eventos no coletor de rastreamento.

Leia Também  O que é uma malha de serviço e você precisa de uma?

Coisas a considerar:

  • Como desenvolvedor de API ou microsserviços, você pode criar um serviço auxiliar Opentrace ou um conector Mule, que será chamado em etapas estratégicas para criar rastreamentos e extensões. Nossa recomendação é criar o conector devido à sua portabilidade.
  • Inclua lógica para identificar se um microsserviço é o iniciador ou um participante de um rastreio. Com base nisso, você precisaria criar um novo rastreamento ou ingressar em um rastreamento existente. Isso é importante, pois suas transações abrangem os limites HTTP.
  • Embora usado principalmente com o protocolo HTTP / s, o Opentracing também pode ser usado com o JMS. Isso pode ser aproveitado para muitos casos de uso, pois isso expande seu limite de transação.

Deseja explorar mais?

Escreverei mais alguns artigos sobre esse assunto, com foco em:

  • Nuances de conceitos de rastreamento
  • Como criar seu próprio conector Mule OpenTracing
  • Como configurar uma estrutura de rastreamento distribuído de nível de produção
  • Uma implementação de ponta a ponta

Para mais recursos para desenvolvedores, consulte a seção de tutoriais do nosso site. Entre em contato comigo com seus comentários na seção de comentários ou no LinkedIn


cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Luiz Presso
Luiz Presso