领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我谨代表团队,非常高兴地宣布 Spring Cloud Stream 1.0.0.M4 发布。新版本带来了一些重大更改和增强,并定义了我们认为对于开发分布式实时数据处理应用程序至关重要的核心抽象和原语。其中一些包括:
Spring Cloud Stream 1.0.0.M4 中最重要的变化是应用程序之间交互的方式。我们选择了一种默认的发布-订阅模型,在这种模型中,接收来自特定目的地的消息的每个应用程序都会收到该消息的副本。这更适合流应用程序的处理模型,其中中间主题充当各种交叉数据流的数据中心,同时也使诸如“窃听”(tapping)之类的场景更容易、更有效。此功能与下一个功能“消费者组”紧密结合。
当然,如果有给定应用程序的多个实例,我们希望它们充当竞争性或分区性消费者——消息应该只发送给并行运行的其中一个实例。在 Spring Cloud Stream 1.0.0.M4 中,现在可以通过使用消费者组来实现。输入绑定可以在运行时指定一个消费者组,例如 spring.cloud.stream.bindings.input.group=myGroup。如果多个应用程序这样做,它们将成为同一组的一部分,消息将在它们之间分发,无论是通过负载均衡还是分区策略(由另一组配置控制)。这个概念受到了 Kafka 的启发,但不同的绑定器实现提供了不同的方法来提供此功能,并且这是框架中的一个一级概念。
虽然没有向普通用户公开,但 Binder SPI 是 Spring Cloud Stream 的重要组成部分,并确保框架保持灵活性和可扩展性。在此版本中,我们采取了简化 SPI 的激进措施,使开发人员能够更轻松地创建自己的实现,如果需要的话,除了已经提供的 Kafka、Rabbit 和 Redis。 (作为善意的警告,我们在 RC 发布之前计划对 Binder SPI 进行一些进一步的更改。)
Kafka 绑定器现在支持通过 spring.cloud.stream.binder.kafka.resetOffsets 属性在启动时重置偏移量,允许应用程序从其订阅的分区的开头或结尾恢复消费,通过 spring.cloud.stream.binder.kafka.startOffset 属性,该属性可以设置为 earliest 或 latest 偏移量。后者可用于控制新启动应用程序的起始偏移量。
Spring Cloud Stream 现在利用 Spring Boot 的应用程序健康管理支持,通过公开一个用于绑定器的健康指示器,反映中间件连接的状态。此功能目前支持 Rabbit 和 Redis,并且在绑定器使用与 Boot 提供的默认连接不同的连接时尤其重要。
增强和修复的完整列表可以在GitHub上查看。
Spring Cloud Stream 是 Spring Cloud Data Flow 的核心组件,与 Spring Cloud Task 一起,为 Spring Cloud Bus 提供了基础。
一如既往,我们欢迎反馈:无论是在 GitHub、Stack Overflow,还是在 Twitter 上。