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/ Visão geral de serviço/ Comparação entre Kafka, RabbitMQ e RocketMQ
Atualizado em 2024-01-10 GMT+08:00

Comparação entre Kafka, RabbitMQ e RocketMQ

Recurso

RocketMQ

Kafka

RabbitMQ

Fila de prioridade

Não compatível

Não compatível

Compatível. Recomenda-se que a prioridade seja definida como 0–10.

Fila atrasada

Compatível

Não compatível

Compatível

Fila de mensagens mortas

Compatível

Não compatível

Compatível

Repetição de mensagem

Compatível

Não compatível

Não compatível

Modo de recuperação

Baseado em pull e baseado em push

Baseado em pull

Baseado em pull e baseado em push

Transmissão de mensagens

Compatível

Compatível

Compatível

Rastreamento de mensagens

Compatível

Suporta rastreamento de deslocamento e carimbo de data/hora.

Não compatível. Uma vez que uma recuperação de mensagem tenha sido confirmada, o RabbitMQ será notificado de que a mensagem pode ser excluída.

Acumulação de mensagens

Compatível

Suporta maior desempenho de acumulação do que o RabbitMQ graças ao alto rendimento.

Compatível

Persistência

Compatível

Compatível

Compatível

Rastreamento de mensagens

Compatível

Não compatível

Suportado pelo recurso firehose ou pelo plug-in rabbitmq_tracing. No entanto, o rabbitmq_tracing reduz o desempenho e deve ser usado apenas para a solução de problemas.

Filtragem de mensagens

Compatível

Compatível

Não compatível, mas pode ser encapsulado.

Multilocatário

Compatível

Não compatível

Compatível

Multiprotocolo

Compatível com RocketMQ.

Suporta apenas o Apache de Kafka.

O RabbitMQ é baseado no AMQP e suporta MQTT e STOMP.

Multilíngue

Suporta clientes em várias linguagens de programação.

Kafka é escrito em Scala e Java e suporta clientes em várias linguagens de programação.

RabbitMQ é escrito em Erlang e suporta clientes em várias linguagens de programação.

Limitação

Planejado

Suporta limitação em clientes produtores ou consumidores.

Apoia a limitação baseada no crédito sobre os produtores, um mecanismo que aciona a proteção a partir de dentro.

Entrega de mensagem ordenada

A ordem das mensagens é mantida dentro de uma fila.

Suporta nível de partição FIFO.

Não compatível. Suporta FIFO somente para enfileiramento de mensagens de thread único sem recursos avançados, como filas atrasadas ou filas prioritárias.

Segurança

Suporta autenticação SSL.

Suporta autenticação SSL e SASL e controle de permissões de leitura/gravação.

Semelhante a Kafka.

Mensagens transacionais

Compatível

Compatível

Compatível