领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我代表团队高兴地宣布 Spring Cloud Stream Chelsea.RC1 发布。Spring Cloud Stream Chelsea.RC1 可在 Spring Milestone 仓库 中使用,其功能的详细说明可以在 参考文档 中找到。有关工件信息和完整的更改列表,请参阅 发行说明。
以下是新版本带来的主要新功能和改进的摘要
我们添加了对 基于 SpEL 表达式的条件将消息分发到注册在输入通道上的多个 @StreamListener 方法 的支持。这允许在编写消息驱动微服务时具有更大的灵活性,特别是对于 DDD/ES/CQRS 场景,其中不同类型的事件可以直接分发到其处理方法。
@EnableBinding(Sink.class)
@EnableAutoConfiguration
public static class {
@StreamListener(target = Sink.INPUT, condition = "headers['type']=='customer'")
public void handleCustomerEvent(@Payload CustomerEvent customerEvent) {
// handle the message
}
@StreamListener(target = Sink.INPUT, condition = "headers['type']=='order'")
public void handleOrderEvent(@Payload OrderEvent orderEvent) {
// handle the message
}
}
Spring Cloud Stream 添加了一个额外的模块,该模块可以在专用通道上导出 Spring Boot 指标。您现在只需在类路径上添加模块并提供目标目的地(如 参考文档 中所述)即可从您的应用程序收集指标。默认情况下,该模块导出 Spring Integration 指标(包括绑定通道指标),但也可以添加其他指标。这使得 Spring Cloud Stream 应用程序能够更好地支持流量监控。
模式支持的新功能包括模式搜索和 客户端缓存,后者为序列化支持带来了显著的性能提升。
RabbitMQ 绑定器现在支持 自定义目标代理上目的地的类型及其属性,包括对直接交换和消息 TTL 设置的支持。
从这个版本开始,Spring Cloud Stream 引入了一个新的供应 SPI,它抽象了在目标代理上创建和配置目的地(主题、交换机、队列)的过程。这允许在绑定器的基础设施管理和消息传递方面之间更好地分离关注点。
在接下来的几周内,我们将专注于错误修复和文档/示例改进,为 GA 版本做好准备。
除此之外,以下是一些我们计划纳入未来路线图的项目
Chelsea.RELEASE 之后:发布一些配套集成(不是发布列车的一部分,但与核心支持集成,目标是将来包含在发布列车中)
JMS 绑定器,具有对 Active MQ 的原生支持;
升级 Google Pub Sub 绑定器 的客户端库;
基于现有 概念验证 的基于 Reactive Streams 的绑定器;
基于现有 概念验证 的 Kafka Streams 绑定器;
在**未来的** Chelsea 服务版本中:改进错误处理和 DLQ 管理;
我们还计划开始 Spring Cloud Stream 2 的工作,该工作将支持 Spring 5 和 Spring Integration 5。
我要感谢所有参与者提供的支持。特别是,我要特别感谢社区成员通过提出问题或提供补丁对本次发布做出的贡献
Donovan Muller (@donovanmuller)
Nicholas Byl (@nbyl)
Maxim Kirilov (@maximkir)
唐睿 (@tangrui)
Jose A. Iñigo (@codependent)
Dennis Melzer (@sirwayne)
Wallace Wadge (@wwadge)
Barry Commins (@barrycommins)
Reda Alaoui(@reda-alaoui)
像往常一样,欢迎所有贡献,社区支持是我们成功的基石!您可以在 GitHub、Stack Overflow、Gitter 或 Twitter(主题标签 #Stream 或 #SpringCloudStream)上与我们保持联系。
最后但并非最不重要的一点是,一系列由社区为社区举办的 Spring 活动即将举行,就在您附近
获取您的门票或 提交演讲!