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.
4 answers
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 .
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
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.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.