Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Distributed Message Service for Kafka/ Melhores práticas/ Melhoria da eficiência do processamento de mensagens
Atualizado em 2024-09-09 GMT+08:00

Melhoria da eficiência do processamento de mensagens

Durante o envio e o consumo de mensagens, o DMS for Kafka, os produtores e os consumidores colaboram para garantir a confiabilidade do serviço. Além disso, a eficiência e a precisão do envio e do consumo de mensagens melhoram quando os desenvolvedores fazem uso adequado dos tópicos do DMS for Kafka.

As melhores práticas para produtores e consumidores de mensagens são as seguintes:

Reconhecimento de produção e consumo de mensagens

Produção de mensagens (envio)

O produtor decide se deseja reenviar uma mensagem com base na resposta do DMS for Kafka.

O produtor aguarda o resultado de envio ou a função de retorno de chamada assíncrona para determinar se a mensagem foi enviada com sucesso. Se ocorrer uma exceção ao enviar a mensagem, o produtor não receberá uma resposta bem-sucedida e deverá decidir se deseja reenviar a mensagem. Se uma resposta bem-sucedida for recebida, ela indica que a mensagem foi armazenada no DMS for Kafka.

Consumo de mensagens

O consumidor reconhece o consumo bem-sucedido da mensagem.

As mensagens produzidas são armazenadas sequencialmente no DMS for Kafka. Durante o consumo, as mensagens armazenadas no DMS for Kafka são obtidas em sequência. Os consumidores obtêm mensagens, consomem-nas e registram o status (com sucesso ou com falha). O status é então enviado ao DMS for Kafka.

Durante esse processo, o status de consumo de mensagem pode não ser enviado com sucesso devido a uma exceção. Nesse caso, as mensagens correspondentes serão obtidas novamente pelo consumidor na próxima solicitação de consumo de mensagens.

Transferência idempotente de produção e consumo de mensagens

Para garantir mensagens sem perdas, o DMS for Kafka implementa uma série de medidas de confiabilidade. Por exemplo, o mecanismo de armazenamento de sincronização de mensagens é usado para impedir que o sistema e o servidor sejam reiniciados ou desligados. O mecanismo ACK é usado para lidar com exceções que ocorrem durante a transmissão de mensagens.

Considerando condições extremas, como exceções de rede, você pode usar o DMS for Kafka para projetar o envio e o consumo de mensagens, além de reconhecer a produção e o consumo de mensagens.

  • Se o envio da mensagem não puder ser reconhecido, o produtor precisará reenviar a mensagem.
  • Depois de consumir uma mensagem que foi processada, o consumidor precisa notificar o DMS for Kafka de que o consumo foi bem-sucedido e garantir que a mensagem não seja processada repetidamente.

Produção e consumo de mensagens em lotes

Recomenda-se que as mensagens sejam enviadas e consumidas em lotes para melhorar a eficiência.

Figura 1 Mensagens sendo produzidas (enviadas) e consumidas em lotes
Figura 2 Mensagens sendo produzidas (enviadas) e consumidas uma a uma

Ao consumir mensagens em lotes, os consumidores precisam processar e reconhecer mensagens na sequência de recebimento de mensagens. Portanto, quando uma mensagem no lote não ser consumida, o consumidor não precisa consumir as mensagens restantes e pode enviar diretamente o reconhecimento de consumo das mensagens consumidas com sucesso.

Uso de grupos de consumidores para facilitar a O&M

Você pode usar o DMS for Kafka como um sistema de gerenciamento de mensagens. A leitura do conteúdo das mensagens dos tópicos é útil para a localização de falhas e a depuração de serviços.

Quando ocorrem problemas durante a produção e o consumo de mensagens, você pode criar grupos de consumidores diferentes para localizar e analisar problemas ou depurar serviços para interconexão com outros serviços. Para garantir que outros serviços possam continuar a processar mensagens em tópicos, você pode criar um novo grupo de consumidores para consumir e analisar as mensagens.