Todos os produtos
Search
Central de documentação

ApsaraMQ for RocketMQ:Ordered messages

Última atualização: Jun 27, 2026

As mensagens ordenadas são consumidas na exata sequência de envio, seguindo rigorosamente o modelo FIFO (first in, first out). Utilize esse tipo de mensagem quando a lógica de negócio depender de processamento sequencial, como em sistemas financeiros ou plataformas de e-commerce.

Conceitos principais

Mensagens ordenadas são um tipo específico de mensagem no ApsaraMQ for RocketMQ. Dentro de um tópico, essas mensagens são publicadas e consumidas em ordem FIFO estrita.

A chave de sharding define a partição de destino da mensagem. O sistema sempre direciona mensagens com a mesma chave de sharding à mesma partição, preservando sua ordem relativa.

As mensagens ordenadas por partição garantem a ordenação FIFO dentro de cada partição de um tópico. O particionamento ocorre pela chave de sharding, e a garantia de ordem aplica-se apenas às mensagens que compartilham essa chave. Não há garantia de ordenação entre mensagens de partições diferentes.

Nota: Mensagens ordenadas, agendadas e transacionais são tipos mutuamente exclusivos. Uma única mensagem não pode pertencer a mais de um desses tipos simultaneamente.

Casos de uso

Mensagens ordenadas por partição são ideais para sistemas de alto throughput que exigem sequenciamento rigoroso dentro de agrupamentos lógicos, mas não necessariamente entre eles.

Caso de uso

Chave de sharding

Importância da ordenação

Pedidos de e-commerce

ID do pedido

Eventos de criação, pagamento e reembolso do mesmo pedido devem ser processados sequencialmente para manter a consistência do estado do pedido.

Verificação de usuário

ID do usuário

As mensagens com códigos de verificação de um mesmo usuário precisam chegar na ordem em que foram solicitadas.

Todos os sistemas internos de e-commerce do Alibaba Group utilizam mensagens ordenadas por partição para assegurar desempenho estável e processamento sequencial dos pedidos online.

Funcionamento

O ApsaraMQ for RocketMQ impõe a ordenação FIFO em três fases: publicação, armazenamento e consumo.

Ordered message workflow

Publicação de mensagens

No diagrama acima, as mensagens dos Pedidos A e B são produzidas nesta sequência: A1, B1, A2, A3, B2, B3. As mensagens de cada pedido devem ser consumidas na mesma ordem relativa de produção: A1, depois A2, depois A3; e B1, depois B2, depois B3.

Em mensagens normais (não ordenadas), o broker distribui as mensagens pelas filas em round-robin, sem preservar a ordem. Já nas mensagens ordenadas, o broker encaminha todas as mensagens que compartilham a mesma chave de sharding (por exemplo, o mesmo ID de pedido) para a mesma fila, mantendo a sequência intacta.

A ordenação depende do remetente. O broker determina a ordem das mensagens com base na sequência em que um único producer ou thread as envia. Se múltiplos producers ou threads enviarem mensagens simultaneamente, o broker as ordenará pelo horário de chegada, o que pode divergir da sequência de negócios pretendida.

Armazenamento de mensagens

Cada fila lógica em um tópico de mensagens ordenadas corresponde a exatamente uma fila física. As mensagens chegam à fila lógica em ordem e são persistidas na fila física correspondente seguindo a mesma sequência.

Consumo de mensagens

O broker entrega as mensagens aos consumidores na ordem de armazenamento. Mensagens que compartilham a mesma chave de sharding são consumidas por um único thread, garantindo que a ordem de consumo corresponda tanto à ordem de armazenamento quanto à ordem original de publicação.

Observações de uso

  • Um grupo, um tipo de mensagem. Cada grupo está vinculado a um único tipo de tópico. Não utilize o mesmo grupo para enviar ou receber mensagens ordenadas e não ordenadas simultaneamente.

  • Ordenação por produtor único. O broker preserva a ordem com base na sequência em que um único producer ou thread envia as mensagens. Caso múltiplos producers ou threads enviem dados simultaneamente, a ordenação ocorrerá pelo horário de chegada, podendo diferir da sequência esperada pelo negócio. Para garantir ordenação estrita entre produtores, direcione todas as mensagens da mesma sequência de negócios por meio de uma única instância de producer.

  • Apenas envio síncrono. Mensagens ordenadas exigem transmissão síncrona confiável. A transmissão assíncrona não é suportada, pois envios assíncronos não garantem a ordem de entrega.

  • Apenas consumo em cluster. Mensagens ordenadas suportam consumo em cluster, mas não admitem consumo por broadcast.

Perguntas frequentes

Uma mensagem pode ser ordenada, agendada e transacional ao mesmo tempo?

Não. Mensagens ordenadas, agendadas e transacionais são tipos mutuamente exclusivos.

Quais regiões suportam mensagens ordenadas?

Mensagens ordenadas estão disponíveis em todas as regiões da Alibaba Cloud e do Finance Cloud onde o ApsaraMQ for RocketMQ está implantado.

Quais modos de transmissão as mensagens ordenadas suportam?

Somente transmissão síncrona confiável. A transmissão assíncrona não é suportada porque não garante a ordenação estrita.

Mensagens ordenadas suportam consumo por broadcast?

Não. Mensagens ordenadas suportam apenas consumo em cluster.

Código de exemplo

SDKs TCP

SDKs HTTP