据我所知,Apache Kafka是异步消息传递平台,而Apache Camel是一个实现企业集成模式的平台。
那么,Apache Camel和Apache Kafka的实际差异是什么?我们计划用Apache Camel实现这个系统,这个系统比较容易,但是我们的客户想要Apache Kafka而不是理性的。
选择Apache Kafka实现消息队列功能有什么好处,这也可以用Apache Camel实现?我担心Kafka会给项目带来不必要的开销。我们比较苹果和橘子吗?
我们需要的是简单的API来设置和使用群集消息队列。我们的初始计划是使用Camel在集群JMS或ActiveMQ队列上使用/生成。 Kafka如何让这项工作更轻松?无论哪种情况,应用程序本身都可以在WebLogic服务器上运行。
消息传递是点对点类型,其中有多个相同服务的实例正在运行,但只有一个实例应该处理消息并根据负载平衡策略发出结果。消息队列也是群集的,因此服务实例或队列实例的故障都不是SPOF。
答案 0 :(得分:6)
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,反之亦然。但是,当然也有成功使用的可能性。