Jef*_*ook 1 apache-kafka spring-cloud-stream
Spring Cloud Kafka Streams、Spring Cloud Stream、Spring Cloud Function、Spring AMQP 和 Spring for Apache Kafka 有什么区别?
Spring for Apache Kafka 和 Spring AMQP 是分别为 Apache Kafka 和 AMQP 编写 Spring 友好应用程序的基础库。它们提供了设计模式,例如模板、消息侦听器容器以及各种其他机制来与较低级别的中间件系统进行交互。这些库不需要 Spring Boot,但 Spring Framework 是最不常见的。换句话说,您可以使用这些库编写仅具有 Spring 框架上下文的传统 Spring 应用程序。
Spring Cloud Function 是一个库,是 Spring Cloud 组合项目的一部分。这用作 Spring Boot 应用程序的一部分。它为编写涉及各种范例的应用程序提供了一致的编程模型,例如请求响应(HTTP)、事件驱动(发布-订阅)、流处理(发布-订阅/流式传输)、反应式流等。应用程序级别是通过 Java 8 功能模型 - 例如,您可以将业务逻辑编写为java.util.function.Function<?, ?>. Spring Cloud Function 不与任何中间件或其他此类技术耦合。
Spring Cloud Stream 是另一个专门为事件驱动和流处理用例构建的 Spring Cloud 项目。由于这是一个 Spring Cloud 项目,因此需要将其用作 Spring Boot 应用程序的一部分。Spring Cloud Stream 的最新版本是建立在 Spring Cloud Function 提供的基础上的。这本质上是一个目标绑定框架,允许您提供目标 - 例如 Kafka 主题或 RabbitMQ 交换。Spring Cloud Stream 将为应用程序绑定这些目的地。核心 Spring Cloud Stream 没有任何中间件依赖项。这就是活页夹实现的用武之地。
Spring Cloud Stream 提供了两种 Kafka 绑定器 -spring-cloud-stream-binder-kafka和spring-cloud-stream-binder-kafka-streams。第一个是绑定器实现,它为编写常规 Kafka 生产者和消费者提供编程模型支持。大多数情况下,您可以采用同一个应用程序并提供另一个绑定程序(例如spring-cloud-stream-binder-rabbit),它应该可以工作(前提是该应用程序进行了正确的配置更改)。这是因为绑定程序涉及与中间件通信的较低级别细节,而不是应用程序本身。应用程序可以主要关注手头的业务逻辑。Spring Cloud Stream 中的 Kafka Streams 绑定器是专门为使用 Kafka Streams 编写流应用程序而构建的绑定器实现。两种 Kafka Binder 实现都在底层使用 Spring for Apache Kafka。
Spring Cloud Stream 中的 Rabbit Binder 内部使用 Spring AMQP。
总结一下:
| 归档时间: |
|
| 查看次数: |
3728 次 |
| 最近记录: |