Apache Camel vs Apache Kafka

时间:2018-01-30 11:08:54

标签: apache apache-kafka apache-camel jms messaging

据我所知,Apache Kafka是异步消息传递平台,而Apache Camel是一个实现企业集成模式的平台。

那么,Apache Camel和Apache Kafka的实际差异是什么?我们计划用Apache Camel实现这个系统,这个系统比较容易,但是我们的客户想要Apache Kafka而不是理性的。

选择Apache Kafka实现消息队列功能有什么好处,这也可以用Apache Camel实现?我担心Kafka会给项目带来不必要的开销。我们比较苹果和橘子吗?

我们需要的是简单的API来设置和使用群集消息队列。我们的初始计划是使用Camel在集群JMS或ActiveMQ队列上使用/生成。 Kafka如何让这项工作更轻松?无论哪种情况,应用程序本身都可以在WebLogic服务器上运行。

消息传递是点对点类型,其中有多个相同服务的实例正在运行,但只有一个实例应该处理消息并根据负载平衡策略发出结果。消息队列也是群集的,因此服务实例或队列实例的故障都不是SPOF。

2 个答案:

答案 0 :(得分:6)

骆驼和卡夫卡完全不同。在许多用例中,camel仅用作kafka / activemq / ...的客户端。

Kafka和activemq是相似的,但也有不同的东西,请参考What is the difference between Apache kafka vs ActiveMQ。 Kafka具有更高的吞吐量,数据始终在磁盘上,因此比activemq更可靠。

Kafka通常用作实时数据流,一般来说activemq主要用于应用程序之间的集成,本书也是如此。但在大多数现实世界中,kafka和activemq可以轻松地互相替换。

答案 1 :(得分:2)

很难比较这两者。它们不涉及相同的工作领域,但存在一些系统,您可以在这些系统中替换它们。

很快。

Kafka是具有处理消息Apache Kafka的流媒体功能的消息传递平台。

Camel是ETL框架,它可以从“任意”(参见Camel的端点列表)输入点转换消息/事件/数据,并将其发送到“任何”输出Apache Camel - Enterprise Integration Patterns

你可以在没有卡夫卡的情况下使用Camel,反之亦然。但是,当然也有成功使用的可能性。

  • 案例1.您在PostgreSQL DB中处理邮件和存储。卡夫卡没用 这里。
  • 案例2.您处理来自ActiveMQ的消息并将其发送给 卡夫卡。你可以使用两者。