领先一步
VMware 提供培训和认证,助您加速进步。
了解更多亲爱的Spring社区!
我很高兴宣布支持 Amazon Web Services 的 Spring 项目的里程碑版本发布:Spring Integration for AWS 2.0.0.M2 和 Spring Cloud Stream Binder for AWS Kinesis 1.0.0.M2。
这两个里程碑版本都可以在 Spring Milestone 仓库中获取,并且可以作为 Maven 依赖项使用。
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-aws</artifactId>
<version>2.0.0.M2</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kinesis</artifactId>
<version>1.0.0.M2</version>
</dependency>
当第二个依赖项(Spring Cloud Stream Binder for AWS Kinesis)在使用时,第一个依赖项(Spring Integration for AWS)是不需要单独包含的。对于 AWS Kinesis Binder,AWS Kinesis 和 AWS DynamoDB 的 Java SDK 依赖项也会被传递性地包含进来。
这些里程碑版本的发布是团队和一些第三方贡献者辛勤工作的成果,他们从社区通过 StackOverflow 问题、Gitter 聊天、bug 报告和功能请求中获得了宝贵的反馈。在此,感谢所有参与者!
以下是自上次宣布的 里程碑 1 以来的变更:
KinesisMessageDrivenChannelAdapter 在 AWS 客户端出现间歇性网络错误时,其容错能力得到了改进。
Kinesis Checkpointer 已得到改进,基于 ConcurrentMetadataStore,以实现更好的并发交互,尤其是在集群环境(消费者组)中。
为 SqsMessageHandler 和 SnsMessageHandler 实现了一个头映射机制,分别是开箱即用的实现 SqsHeaderMapper 和 SnsHeaderMapper。
由于 AWS Kinesis 不提供任何头信息注解,我们通过将头信息“嵌入”到 Kinesis Record 主体中实现了变通。为此,KinesisMessageHandler 和 KinesisMessageDrivenChannelAdapter 应分别配置 OutboundMessageMapper 和 InboundMessageMapper。一个不错的选择是,在双方都可以使用开箱即用的 Spring Integration EmbeddedJsonHeadersMessageMapper 来通过 AWS Kinesis 传递任何所需的message headers。
KinesisMessageDrivenChannelAdapter 还提供了当使用 ListenerMode.batch 时转换记录的逻辑。
KinesisMessageChannelBinder 已根据 Spring Cloud Stream 和 Spring Integration AWS 的最新更改和修复进行了更新。
此外,还引入了一个新的 rawRecords 监听器模式。默认情况下,Kinesis Binder 配置为 record 模式,其中要发出的消息包含 byte[] 作为 payload,供 Spring Cloud Stream 进行下游转换。batch 模式现在生成 List<byte[]>,而新的 rawRecords 模式生成一个 payload 为 List<Record> 的消息——所有的业务模型转换逻辑都由目标 @StreamListener 方法的用户自行处理。
一如既往,我们欢迎通过适当的沟通渠道提出任何反馈、功能想法、批评、bug 报告和问题!
Spring Integration AWS 项目页面 | Spring Cloud Stream Binder for AWS Kinesis 项目页面 | 帮助 | 聊天