Apache Kafka和Camel之间的区别(Broker vs Integration)

时间:2018-01-15 17:37:07

标签: apache-kafka apache-camel message-queue

我试图理解像卡夫卡这样的东西和像Camel这样的东西。据我所知,Camel将为开发人员提供更多抽象,而不必担心在某种程度上更改协议/系统。 Kafka如何能够处理Camel现在可以做的大部分事情?我正在阅读文档,似乎Kafka已经更新/升级到足以略微脱离成为消息代理。我想我的问题真的可以归结为Kafka与Camel在未来打样系统方面的比较以及Kafka在哪些方面没有Camel?我的印象是Kafka的扩展性不如系统增长。

编辑:这完全基于消息。围绕Camel的文档清楚地表明它基于企业集成模式,但是我深入研究Kafka文档可以实现相同的模式。我错过了什么吗?

4 个答案:

答案 0 :(得分:6)

Apache Kafka : Is a streaming processing platform. It is based on massively scalable publish subscribe message queue architecture. There are many other platforms which are based on JMS publish subscribe model, which could do the same(with some exceptions). Some of the most popular are Apache-Activemq, RabbitMq

Apache Camel : Is a message oriented middleware. It has implemented almost all the Enterprise Integration Patterns.

You can use Apache Camel with Apache Kafka. Or you can use Apache Kafka without Apache Camel also.

答案 1 :(得分:1)

他们是完全不同的两件事。

将Camel视为一个接口定义工具,您可以在其中定义消息传入的端点或通道。但它们是抽象的。比较Camel和Spring Integration。

Kafka可以提供这些消息,因此它可以实现那些抽象通道或端点。但ActiveMQ和其他人也是如此。

答案 2 :(得分:1)

Kafka是一名消息经纪人。它可与ActiveMQ,RabbitMQ,Azure Service Bus等其他消息代理进行比较.Camel是一个集成中间件。它与Apache ServiceMix更具可比性。

答案 3 :(得分:0)

看看事件驱动的体系结构https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch02.html的原理,我们可以根据是否需要事件介体来区分两种不同的事件驱动的拓扑。

  1. 消息代理。在此类别中,我们发现Kafka不依赖消息中介程序。当然,如先前的回答所述,我们可以根据需要将Kafka与调解器一起使用。
  2. 消息中介。在此类别中,我们找到像骆驼一样的产品。您可能会将其视为消息控制器。