apachekafka和camel的区别(代理与集成)

z9ju0rcb  于 2021-06-07  发布在  Kafka
关注(0)|答案(4)|浏览(467)

我试图理解Kafka和 Camel 的区别。据我所知,camel将为开发人员提供更多的抽象,而不必担心在某种程度上更改协议/系统。Kafka怎么可能不能处理 Camel 现在能做的大部分事情呢?我正在阅读文档,似乎kafka已经进行了足够的更新/升级,不再仅仅是一个消息代理了。我想我的问题真的会归结到Kafka如何与 Camel 相比,在未来的校对系统和Kafka在哪里不足 Camel ?我的印象是,Kafka的规模并没有一个系统的发展。
编辑:这是严格基于消息的,围绕camel的文档非常清楚地表明它是基于企业集成模式的,但是我对kafka文档越深入,就可以实现相同的模式。我错过什么了吗?

lnxxn5zx

lnxxn5zx1#

apachekafka:是一个流处理平台。它基于可大规模扩展的发布-订阅消息队列体系结构。还有许多其他平台基于jms发布-订阅模型,它们也可以这样做(除了一些例外)。其中一些最流行的是apacheactivemq、rabbitmq
apachecamel:是一个面向消息的中间件。它实现了几乎所有的企业集成模式。
您可以将apache camel与apache kafka结合使用。也可以使用apachekafka而不使用apachecamel。

abithluo

abithluo2#

Kafka是一个消息代理。它与其他消息代理(如activemq、rabbitmq、azure服务总线等)相当。camel是一个集成中间件。它更类似于apacheservicemix。

h7appiyu

h7appiyu3#

他们是两个完全不同的东西。
考虑将camel作为一个接口定义工具,您可以在其中定义消息飞入的端点或通道。但它们是抽象的。例如,将camel与spring集成进行比较。
kafka可以提供这些消息,因此它可以实现这些抽象通道或端点。但是activemq和其他人也可以。

mlmc2os5

mlmc2os54#

看一看事件驱动体系结构的理论https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch02.html 我们可以根据是否需要事件中介来区分两种不同类型的事件驱动拓扑。
消息代理。在这一类中,我们可以找到Kafka,因为它不依赖于消息中介。当然,正如前面的回答所写的,我们可以根据需要使用Kafka和调解人。
消息中介程序。在这一类中,我们可以找到像 Camel 这样的产品。您可以将其视为消息控制器。

相关问题