Apache Kafka 和 Camel 之间的区别(代理与集成)
Difference Between Apache Kafka and Camel (Broker vs Integration)
我正在尝试理解 Kafka 和 Camel 之类的东西之间的区别。据我了解,Camel 将为开发人员提供更多的抽象,而不必担心在某种程度上更改 protocols/systems。 Kafka 怎么可能无法处理 Camel 现在能做的大部分事情呢?我正在阅读文档,Kafka 似乎已经 updated/upgraded 足以稍微脱离仅作为消息代理的角色。我想我的问题真的可以归结为 Kafka 在未来的验证系统方面与 Camel 相比如何,以及 Kafka 在哪些方面不如 Camel?我的印象是 Kafka 无法随着系统的增长而扩展。
编辑:这完全基于 messages.The 围绕 Camel 的文档非常清楚地表明它基于企业集成模式,但我深入研究 Kafka 文档可以实现相同的模式。我错过了什么吗?
它们是两个完全不同的东西。
将 Camel 视为一种接口定义工具,您可以在其中定义消息传入的端点或通道。但它们是抽象的。例如,将 Camel 与 Spring 集成进行比较。
Kafka 可以提供那些消息,因此它可以实现那些抽象通道或端点。但是 ActiveMQ 和其他人也可以。
Apache Kafka : 是一个流处理平台。它基于可大规模扩展的发布订阅消息队列架构。还有许多其他基于 JMS 发布订阅模型的平台,它们可以做同样的事情(有一些例外)。一些最受欢迎的是 Apache-Activemq、RabbitMq
Apache Camel : 是一个面向消息的中间件。它几乎实现了所有 Enterprise Integration Patterns。
您可以将 Apache Camel 与 Apache Kafka 一起使用。或者你也可以在没有 Apache Camel 的情况下使用 Apache Kafka。
Kafka 是一个消息代理。它与其他消息代理(如 ActiveMQ、RabbitMQ、Azure 服务总线等)相当。Camel 是一个集成中间件。它与 Apache ServiceMix 更具可比性。
看看事件驱动架构的理论https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch02.html,我们可以根据是否需要事件调解器来区分两种不同类型的事件驱动拓扑。
- 消息代理。在此类别中,我们找到了 Kafka,因为它不依赖于消息中介。当然,正如之前的答案所写,我们可以根据需要将 Kafka 与调解器一起使用。
- 消息中介。在此类别中,我们找到了 Camel 等产品。您可以将其视为消息控制器。
我正在尝试理解 Kafka 和 Camel 之类的东西之间的区别。据我了解,Camel 将为开发人员提供更多的抽象,而不必担心在某种程度上更改 protocols/systems。 Kafka 怎么可能无法处理 Camel 现在能做的大部分事情呢?我正在阅读文档,Kafka 似乎已经 updated/upgraded 足以稍微脱离仅作为消息代理的角色。我想我的问题真的可以归结为 Kafka 在未来的验证系统方面与 Camel 相比如何,以及 Kafka 在哪些方面不如 Camel?我的印象是 Kafka 无法随着系统的增长而扩展。
编辑:这完全基于 messages.The 围绕 Camel 的文档非常清楚地表明它基于企业集成模式,但我深入研究 Kafka 文档可以实现相同的模式。我错过了什么吗?
它们是两个完全不同的东西。
将 Camel 视为一种接口定义工具,您可以在其中定义消息传入的端点或通道。但它们是抽象的。例如,将 Camel 与 Spring 集成进行比较。
Kafka 可以提供那些消息,因此它可以实现那些抽象通道或端点。但是 ActiveMQ 和其他人也可以。
Apache Kafka : 是一个流处理平台。它基于可大规模扩展的发布订阅消息队列架构。还有许多其他基于 JMS 发布订阅模型的平台,它们可以做同样的事情(有一些例外)。一些最受欢迎的是 Apache-Activemq、RabbitMq
Apache Camel : 是一个面向消息的中间件。它几乎实现了所有 Enterprise Integration Patterns。
您可以将 Apache Camel 与 Apache Kafka 一起使用。或者你也可以在没有 Apache Camel 的情况下使用 Apache Kafka。
Kafka 是一个消息代理。它与其他消息代理(如 ActiveMQ、RabbitMQ、Azure 服务总线等)相当。Camel 是一个集成中间件。它与 Apache ServiceMix 更具可比性。
看看事件驱动架构的理论https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch02.html,我们可以根据是否需要事件调解器来区分两种不同类型的事件驱动拓扑。
- 消息代理。在此类别中,我们找到了 Kafka,因为它不依赖于消息中介。当然,正如之前的答案所写,我们可以根据需要将 Kafka 与调解器一起使用。
- 消息中介。在此类别中,我们找到了 Camel 等产品。您可以将其视为消息控制器。