Qual é a diferença entre Apache kafka vs ActiveMQ

estou a trabalhar emApache Kafka . Quero saber qual é melhor: Kafka ou ActiveMQ . Qual é a principal diferença entre estas duas tecnologias? Eu quero implementar Kafka na primavera MVC.

Author: Kukeltje, 2017-06-28

4 answers

O Kafka e o ActiveMQ podem ter algumas sobreposições, mas foram originalmente concebidos para fins diferentes. Comparar é como comparar uma maçã com uma laranja.

Kafka

Kafka é uma Plataforma de streaming distribuída com muito boa capacidade de escala horizontal. Permite que as aplicações processem e reprocessem dados transmitidos no disco. Devido ao seu alto rendimento é comumente usado para dados em tempo real transmissao.

ActiveMQ

O ActiveMQ é um intermediário de mensagens de propósito geral que suporta vários protocolos de mensagens como o AMQP, o STOMP, o MQTT. Suporta padrões de encaminhamento de mensagens mais complicados, bem como os padrões de Integração Empresarial . Em geral, é utilizado principalmente para a integração entre Aplicações / Serviços, especialmente numa Arquitectura orientada para os Serviços .

 21
Author: Chris Lam, 2018-01-05 19:42:21

Eu acho que uma coisa que deve ser anotada numa discussão sobre quais corretores usar (e quando Kafka aparece) é que o Kafka benchmark que é frequentemente referenciado mostra o limite superior de qualquer computador distribuído moderno. Os corretores de hoje têm quase a mesma capacidade total em MB / s. Kafka faz muito bem com mensagens pequenas (10-1024 bytes) quando comparado com outros corretores, mas ainda limita em torno da marca de ~75 Mb/s.

Existe frequentemente um maçãs-para-laranjas comparação esp quando se fala de "agrupamento". A ActiveMQ e outros corretores de empresas agrupam a publicação de mensagens e o acompanhamento das assinaturas dos consumidores. Kafka agrupa a publicação e exige que o consumidor acompanhe a assinatura. Parece mínimo, mas é uma diferença significativa.

Todos os corretores têm os mesmos problemas de pressão traseira -- Kafka pode fazer uma "persistência preguiçosa" onde o produtor não está à espera que o corretor sincronize com o disco.. isto é bom para muita gente. casos de uso, mas provavelmente não o cenário I-care-about-every-single-message que o ppatierno menciona em seu slide show.

O Kafka é muito bom para a escala horizontal para coisas como o grande processamento de dados de pequenas mensagens. O ActiveMQ é mais ideal para a classe de casos de uso frequentemente referida como mensagens empresariais (este é apenas um termo, não significa que o Kafka não seja bom para a Empresa)-- dados transaccionados (embora o Kafka esteja a adicionar isto).. quiosque.. loja.. guardar e avançar.. dmz traversal.. data center-to-data center publishing.. etc

 7
Author: Matt Pavlovich, 2017-06-28 13:20:32
Adicionando à explicação do Chris, posso sugerir esta apresentação:

Https://www.slideshare.net/paolopat/red-hat-jboss-amq-and-apache-kafka-which-to-use

Nota: O Chapéu Vermelho JBoss AMQ 7 é baseado no ActiveMQ Artemis.
 4
Author: ppatierno, 2017-06-28 06:11:52
Ouço esta pergunta todas as semanas... Enquanto o ActiveMQ (como o IBM MQ ou JMS em geral) é usado para mensagens tradicionais, o Apache Kafka é usado como plataforma de streaming (mensagens + armazenamento distribuído + processamento de dados). Ambos são construídos para diferentes casos de uso.

Pode usar o Kafka para" mensagens tradicionais", mas não usar o MQ para cenários específicos do Kafka.

O artigo "Apache Kafka vs. Enterprise Service Bus (ESB)-amigos, inimigos ou inimigos? (https://www.confluent.io/blog/apache-kafka-vs-enterprise-service-bus-esb-friends-enemies-or-frenemies/)" discute por que Kafka não é competitiva, mas complementares para a integração e soluções de mensagens (incluindo ActiveMQ) e como integrar ambos.
 1
Author: Kai Wähner, 2018-07-27 07:13:58