领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我谨代表 Spring Integration 和 Spring Cloud Stream 团队,很高兴地宣布 spring-kafka (Spring for Apache Kafka) 1.0 版本已发布 Release Candidate。
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 中分别配置 key 和 value 的 (De)Serializer 来进行定制;这是配置的另一种方式,替代了通过属性进行配置。
提供了基于 Jackson 库的 JsonSerializer 和 JsonDeserializer;
提供了 RecordFilterStrategy 和 FilteringMessageListenerAdapter,以允许跳过记录或处理重复的传递;
提供了一个不言自明的 RetryingMessageListenerAdapter;
当 MessageListenerContainer 进入空闲状态后,会在可配置的时间后发出 ListenerContainerIdleEvent;
提供了 TopicPartitionInitialOffset,允许配置 MessageListenerContainer 分配到主题中的特定分区,并在启动时选择性地定位到所需偏移量;
@KafkaListener 的 @TopicPartition 属性通过 @PartitionOffset 属性得到了增强,用于初始偏移量的配置;
对消费者重新平衡事件进行了改进。
此 Release Candidate 的主要功能是,当目标监听器处理记录速度较慢时,可以暂停/恢复 KafkaConsumer。如果我们不在 session.timeout.ms 内轮询 KafkaConsumer,Kafka 会认为我们的消费者存在问题并启动分区重新平衡过程(在使用组管理进行分区分配时)。为了保持存活,我们必须轮询消费者。请考虑这种情况:Kafka 在一次轮询中返回了大量记录,而处理这些记录的时间超过了会话超时时间。为此,可以配置 MessageListenerContainer 的 enablePause、pauseAfter 和 queueDepth 参数,KafkaConsumer 将被暂停(继续轮询但不会接收记录),直到监听器完成工作并且消费者被恢复。再次感谢 Martin Dam 在此功能上的帮助和测试。
有关更多信息,请参阅 参考手册。
不要错过 Spring Integration Kafka 2.0 的 Release Candidate,它已重构为基于此 Spring for Apache Kafka 基础。
我们预计将在大约一周内发布 GA 版本,请尝试候选版本,并尽快报告任何问题。
Gary Russell 将在 Spring One Platform 上就 Spring for Apache Kafka 进行演讲。该会议将于今年 8 月 1 日至 4 日在拉斯维加斯举行。还有许多其他精彩的演讲,请查看议程,如果您尚未购票,请立即购票。