Spring for Apache Kafka 1.0 发布候选版本 1 已发布

发布 | Artem Bilan | 2016 年 6 月 7 日 | ...

我代表 Spring Integration 和 Spring Cloud Stream 团队,很高兴宣布 `spring-kafka` (Spring for Apache Kafka) 版本 `1.0` 的发布候选版本现已可用。

构件 `org.springframework.kafka:spring-kafka:1.0.0.RC1` 和 `org.springframework.kafka:spring-kafka-test:1.0.0.RC1` 现已在 Milestone 仓库中提供。

首先,非常感谢所有参与其中的人,感谢积极的社区成员,他们提供了功能请求和贡献。特别感谢 Martin Dam,他花费了大量时间帮助我们改进用于处理慢速监听器的 `pause/resume` 算法。

第二个里程碑版本 以来,我们进行了许多重构和清理工作,其中包括:

  • 可以将 `ConsumerRebalanceListener` 注入到 `MessageListenerContainer` 中;

  • `KafkaConsumer` 和 `KafkaProducer` 可以在 `ConsumerFactory` 和 `ProducerFactory` 中分别通过 `(De)Serializer` s 来自定义 `key` 和 `value`;这是使用属性进行配置的替代方法。

  • 提供了基于 Jackson 库的 `JsonSerializer` 和 `JsonDeserializer` s;

  • 提供了 `RecordFilterStrategy` 和 `FilteringMessageListenerAdapter`,以允许跳过记录或处理重复投递;

  • 提供了一个不言自明的 `RetryingMessageListenerAdapter`;

  • 当 `MessageListenerContainer` 进入空闲状态时,在可配置的时间后会发出一个 `ListenerContainerIdleEvent` 事件;

  • 提供了 `TopicPartitionInitialOffset`,用于配置 `MessageListenerContainer` 分配到主题中的特定分区,并且可以选择在启动时 Seek 到所需的偏移量;

  • `@KafkaListener` 的 `@TopicPartition` 属性已增强,增加了用于初始偏移量配置的 `@PartitionOffset` 属性;

  • 改进了消费者重新平衡事件。

慢速监听器的暂停和恢复

为此发布候选版本实现的主要功能是,当目标监听器处理记录缓慢时暂停/恢复 `KafkaConsumer`。如果在 `session.timeout.ms` 时间内未 Poll `KafkaConsumer`,Kafka 会假定我们的消费者已失效,并在使用分组管理进行分区分配时启动分区重新平衡过程。为了保持存活,我们必须 Poll 消费者。考虑一种情况:Kafka 在一次 Poll 中返回了大量记录,并且处理这些记录花费的时间超过了 session timeout。为此,可以将 `MessageListenerContainer` 配置 `enablePause`、`pauseAfter` 和 `queueDepth` 参数 - `KafkaConsumer` 将被暂停(Polling 继续,但不会接收记录),直到监听器完成工作并恢复消费者。再次感谢 Martin Dam 对此功能的帮助和测试。

更多信息请参阅 参考手册

Spring Integration Kafka 支持

不要错过 Spring Integration Kafka 2.0 的 发布候选版本,该版本已重构以基于这个 Spring for Apache Kafka 基础。

后续步骤

我们预计大约在一周内发布 GA 版本,因此请尝试使用此候选版本,并尽快报告任何问题。

项目主页 | 文档 | 问题 | 帮助

Spring One Platform

Gary Russell 将在今年 8 月 1-4 日于拉斯维加斯举行的 Spring One Platform 大会上,就 Spring for Apache Kafka 发表演讲。还有许多其他精彩演讲,如果您还没有,请 查看议程购票

订阅 Spring 电子报

订阅 Spring 电子报,保持连接

订阅

先行一步

VMware 提供培训和认证,助力您的进步。

了解更多

获得支持

Tanzu Spring 通过简单的订阅方式,为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

近期活动

查看 Spring 社区所有近期活动。

查看全部