O ApsaraMQ for RocketMQ é um serviço de mensagens distribuído desenvolvido para comunicação assíncrona entre aplicações. Ele opera em vários data centers dentro de cada região da Alibaba Cloud, garantindo a disponibilidade da publicação e da assinatura de mensagens mesmo se um único data center ficar indisponível.
Casos de uso comuns incluem:
Desacoplamento assíncrono -- Separe os serviços upstream do processamento downstream para que cada componente escale independentemente. Por exemplo, um sistema de pedidos publica eventos de criação de pedidos, e os serviços downstream (pagamento, estoque, envio) assinam e processam esses eventos conforme sua própria programação.
Entrega confiável de eventos -- Entregue eventos de pedidos, notificações de pagamento ou atualizações de estoque com garantia de entrega pelo menos uma vez.
Execução de tarefas agendadas -- Acione ações downstream em um horário específico ou após um atraso de até 40 dias. Por exemplo, envie um lembrete de pagamento 30 minutos após um usuário fazer um pedido.
Transações distribuídas -- Coordene operações multiserviço com mensagens transacionais que fornecem consistência eventual. Uma gravação no banco de dados local e o envio de uma mensagem têm sucesso simultaneamente ou ambos são revertidos.
O diagrama a seguir mostra a arquitetura geral de recursos.

Tipos de mensagem
O ApsaraMQ for RocketMQ oferece quatro tipos de mensagem. Escolha o tipo que corresponde aos seus requisitos de entrega e ordenação.
Normal messages
Normal messages are messages that have no special features in ApsaraMQ for RocketMQ. They are different from featured messages, such as scheduled messages, delayed messages, ordered messages, and transactional messages.
Scheduled messages and delayed messages
ApsaraMQ for RocketMQ allows producers to deliver messages at a specific point in time or after a specific period of time. The maximum time period is 40 days.
Ordered messages
ApsaraMQ for RocketMQ allows consumers to consume messages in the order in which they are delivered.
Transactional messages
ApsaraMQ for RocketMQ provides a distributed transaction feature similar to X/Open XA to ensure ultimate transaction consistency of distributed transactions.
Mensagens normais
Mensagens padrão sem restrições de ordenação ou tempo. Use mensagens normais para comunicação assíncrona de uso geral, como encaminhamento de dados de log, distribuição de notificações ou desacoplamento de chamadas de microsserviços.
Para obter detalhes, consulte Mensagens normais.
Mensagens agendadas e atrasadas
Entregue mensagens em um carimbo de data/hora específico (agendada) ou após um atraso definido (atrasada). A janela máxima de agendamento é de 40 dias.
Cenários típicos:
Enviar um lembrete 30 minutos após um usuário fazer um pedido.
Acionar um job em lote em um horário específico todos os dias.
Para obter detalhes, consulte Mensagens agendadas e mensagens atrasadas.
Mensagens ordenadas
Garanta que os consumidores recebam as mensagens na ordem exata de publicação. Use mensagens ordenadas quando a sequência for importante — por exemplo, ao processar eventos de alteração de banco de dados ou executar fluxos de trabalho de várias etapas em que cada etapa depende da anterior.
Para obter detalhes, consulte Mensagens ordenadas.
Mensagens transacionais
Implemente transações distribuídas com base no modelo X/Open XA. Uma mensagem transacional vincula uma operação local de banco de dados ao envio de uma mensagem — ambas têm sucesso ou ambas são revertidas — fornecendo consistência eventual entre os serviços.
Para obter detalhes, consulte Mensagens transacionais.
Comparação de tipos de mensagem
A tabela a seguir compara os modos de transmissão e o desempenho entre os tipos de mensagem.
|
Tipo de mensagem |
Transmissão síncrona confiável |
Transmissão assíncrona confiável |
Transmissão unidirecional |
Transmissão multithread |
Desempenho |
|
Mensagens normais |
Sim |
Sim |
Sim |
Sim |
Mais alto |
|
Mensagens transacionais |
Sim |
Sim |
Sim |
Sim |
Mais alto |
|
Mensagens agendadas e atrasadas |
Sim |
Sim |
Sim |
Sim |
Mais alto |
|
Mensagens ordenadas por partição |
Sim |
Não |
Não |
Não |
Alto |
Entrega e confiabilidade
Entrega pelo menos uma vez
Cada mensagem é entregue pelo menos uma vez. Como o ApsaraMQ for RocketMQ usa uma arquitetura distribuída, pode ocorrer entrega duplicada — por exemplo, após a reinicialização de um consumidor ou uma interrupção de rede. Projete a lógica do consumidor para ser idempotente, de modo que o processamento da mesma mensagem duas vezes não cause inconsistência de dados.
Para práticas recomendadas, consulte Idempotência de mensagens.
Nova tentativa de mensagem
Quando um consumidor falha ao processar uma mensagem e retorna uma resposta de nova tentativa, o ApsaraMQ for RocketMQ reentrega a mensagem com base na política de nova tentativa configurada.
Para obter detalhes, consulte Nova tentativa de mensagem.
Filas de mensagens mortas
As mensagens que esgotam todas as tentativas de nova tentativa são movidas para uma fila de mensagens mortas. Inspecione e reprocesse essas mensagens posteriormente sem afetar o fluxo normal de mensagens.
Para obter detalhes, consulte Filas de mensagens mortas.
Filtragem de mensagens
Atribua tags ou atributos às mensagens no momento da publicação e defina condições de filtro nos grupos de consumidores. O broker avalia cada mensagem em relação ao filtro e entrega apenas as correspondentes, reduzindo o tráfego de rede desnecessário e a sobrecarga de processamento.
Para obter detalhes, consulte Filtragem de mensagens.
Modelos de consumo
Consumo por clustering
No modo de clustering, apenas um consumidor dentro de um grupo de consumidores precisa processar a mensagem. Use este modo para cargas de trabalho com balanceamento de carga em que cada mensagem precise ser tratada apenas uma vez.
Consumo por broadcast
No modo de broadcast, cada consumidor do grupo recebe uma cópia de cada mensagem, garantindo que cada mensagem seja consumida por cada consumidor pelo menos uma vez. Use este modo quando todas as instâncias precisarem dos mesmos dados, como invalidação de cache ou atualizações de configuração.
Para obter detalhes sobre ambos os modos, consulte Consumo por clustering e consumo por broadcast.
Redefinição de offset do consumidor
Redefina o offset do consumidor para ignorar mensagens acumuladas (movendo para o offset mais recente) ou para reprocessar mensagens históricas (movendo para um ponto anterior no tempo).
Para obter detalhes, consulte Redefinir offsets de consumidor.
Protocolos de acesso
O ApsaraMQ for RocketMQ suporta dois protocolos de acesso. Escolha com base nos seus requisitos de desempenho e ambiente de rede.
|
Protocolo |
Pontos fortes |
Linguagens suportadas |
|
TCP |
Mais especializado, confiável e estável do que o acesso baseado em HTTP. |
Java, C, C++, .NET |
|
HTTP |
APIs RESTful fáceis de usar que oferecem recursos avançados de acesso entre redes. |
Java, C++, .NET, Go, Python, Node.js, PHP |
Para detalhes do SDK TCP, consulte Notas de versão do SDK TCP. Para uso de HTTP, consulte Acesso HTTP.
Implante suas aplicações em instâncias do Elastic Compute Service (ECS) da Alibaba Cloud, em sua própria infraestrutura, dispositivos móveis ou dispositivos IoT para conectar-se ao ApsaraMQ for RocketMQ e enviar ou receber mensagens. Desenvolvedores locais também podem acessar o ApsaraMQ for RocketMQ pela Internet.
Observabilidade
Consulta de mensagens
Pesquise mensagens específicas por ID da mensagem, chave da mensagem ou tópico. Use consultas de mensagens para verificar o status de entrega ou depurar problemas de processamento.
Para obter detalhes, consulte Consultar uma mensagem.
Rastreamento de mensagens
Acompanhe o caminho completo de uma mensagem do produtor ao broker e até o consumidor. Os rastreamentos de mensagens ajudam a identificar onde ocorrem falhas ou atrasos no pipeline de entrega.
Para obter detalhes, consulte Consultar um rastreamento de mensagem.
Painel
Visualize métricas de produção, consumo e acúmulo por instância, tópico ou grupo. O painel fornece uma visão consolidada da integridade das mensagens em todo o seu ambiente.
Para obter detalhes, consulte Painel.
Monitoramento e alertas
Configure alertas sobre métricas de grupos de consumidores para detectar atrasos ou falhas no consumo. Receba notificações quando o acúmulo de mensagens exceder um limiar, permitindo resolver problemas antes que afetem os serviços downstream.
Para obter detalhes, consulte Monitoramento e alertas.
Ferramentas de gerenciamento
Console web
Gerencie tópicos, grupos e instâncias por meio de um console baseado em navegador. O console também suporta consultas de mensagens, buscas de rastreamento de mensagens e configuração de monitoramento.
Para obter detalhes, consulte Guia do usuário.
OpenAPI
Integre operações de gerenciamento do ApsaraMQ for RocketMQ em suas próprias ferramentas ou pipelines de automação usando a OpenAPI.
Para obter detalhes, consulte Referência da API.