O Lightweight Message Queue (anteriormente MNS) oferece uma solução de rastreamento de ponta a ponta que acompanha as mensagens durante todo o seu ciclo de vida, facilitando o diagnóstico de problemas em sistemas de mensagens distribuídos.
Visão geral
Em sistemas distribuídos, uma única solicitação frequentemente percorre vários serviços. As filas de mensagens gerenciam tarefas de comunicação assíncrona, como absorção de picos de carga e desacoplamento de aplicações. À medida que as mensagens transitam entre produtores, fila e consumidores, qualquer falha na cadeia pode resultar em perda de mensagens, atrasos ou consumo duplicado, o que dificulta a análise da causa raiz.
A solução de rastreamento de ponta a ponta do Lightweight Message Queue (anteriormente MNS) registra o caminho completo de transmissão de uma mensagem ao longo de seu ciclo de vida, fornecendo logs detalhados e métricas de desempenho. É possível ingerir dados de rastreamento compatíveis com OpenTelemetry no Alibaba Cloud Tracing Analysis para diagnosticar anomalias rapidamente.
Capacidades principais
Auditoria de produção e consumo: Registra detalhes das operações, tempo de execução e status do resultado.
Consulta condicional: Localiza problemas rapidamente por meio de filtros como ID da mensagem, nome da fila e intervalo de tempo.
Integração padronizada: Segue o padrão OpenTelemetry e se integra perfeitamente aos dados de rastreamento da aplicação.
Detecção de anomalias: Identifica e marca automaticamente rastreamentos anormais para acelerar o diagnóstico de falhas.
Definição de rastreamento
O rastreamento do Lightweight Message Queue segue a especificação de Messaging Spans do OpenTelemetry e a estende com atributos específicos para filas de mensagens.
Atributos genéricos de span de mensagens
O Lightweight Message Queue suporta os atributos genéricos de span de mensagens definidos no padrão OpenTelemetry. Para mais detalhes, consulte a especificação de Messaging Spans do OpenTelemetry.
Esses atributos incluem o seguinte:
messaging.system: Identificador do sistema de mensagens.messaging.operation.name: Nome da operação.messaging.operation.type: Tipo da operação.messaging.destination.name: Nome da fila ou assunto de destino.messaging.message.id: ID da mensagem.error.type: Tipo de erro (quando a operação falha).
Atributos específicos do Lightweight Message Queue
Além dos atributos padrão, o Lightweight Message Queue fornece os seguintes atributos específicos de span:
|
Nome do atributo |
Tipo |
Descrição |
Valor de exemplo |
Nível de obrigatoriedade |
|
|
string |
Nome do método de operação específico do Lightweight Message Queue. |
SendMessage, ReceiveMessage, PublishMessage |
Obrigatório |
|
|
string |
O ID exclusivo da solicitação. |
6733433D43444218004FAED2 |
Obrigatório |
|
|
string |
Tag da mensagem para mensagens publicadas em um assunto. |
order, payment |
Opcional |
|
|
int |
Timestamp UNIX (em segundos) em que a mensagem se torna visível novamente. |
1731413593 |
Opcional |
|
|
string |
Handle de recebimento retornado ao receber uma mensagem. |
8-oMWXHzxBZlgIlzuz8ztxz0z8MHzcT8Z3Zsy3y0 |
Opcional |
|
|
string |
Handle de recebimento usado para excluir ou modifique uma mensagem. |
8-oMWXHzxBZlgIlzuz8ztxz0z8MHzcT8Z3Zsy3y0 |
Opcional |
|
|
string |
Tipo de assinatura. |
HTTP, HTTPS, QUEUE |
Opcional |
Detalhes dos valores dos atributos
Os seguintes valores são suportados para messaging.smq.operation:
SendMessage: Envia uma mensagem para a fila.BatchSendMessage: Envia mensagens para a fila em lotes.ReceiveMessage: Recebe uma mensagem da fila.BatchReceiveMessage: Recebe mensagens da fila em lotes.DeleteMessage: Exclua uma mensagem da fila.BatchDeleteMessage: Exclua mensagens da fila em lotes.ChangeMessageVisibility: Altera o tempo limite de visibilidade de uma mensagem.PeekMessage: Visualiza uma mensagem da fila sem removê-la.BatchPeekMessage: Visualiza mensagens da fila em lotes sem removê-las.PublishMessage: Publica uma mensagem em um assunto.ConsumeMessage: Consome uma mensagem assinada.AckMessage: Confirme o consumo da mensagem.Notify: Envia uma notificação push.
Os seguintes valores são suportados para messaging.smq.subscription.type:
HTTP: Assinatura de endpoint HTTP.HTTPS: Assinatura de endpoint HTTPS.QUEUE: Assinatura de fila.
Limites
Apenas o cliente Java SDK (versão 1.3.0 ou posterior) suporta o envio de dados de rastreamento para o Tracing Analysis. Para mais informações sobre as versões do SDK, consulte Histórico de versões.
Opções de ingestão de dados de rastreamento
Integre o Lightweight Message Queue ao Application Real-Time Monitoring Service (ARMS) para unificar a coleta, o armazenamento e a análise de dados de rastreamento. Para mais informações, consulte O que é monitoramento de aplicações?.
Integração com o ARMS Application Monitoring
Para obter instruções passo a passo, consulte Integração de aplicações.