领先一步
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 指标。您现在可以通过简单地将该模块添加到 classpath 并提供目标目的地来从您的应用程序收集指标,具体描述参见参考文档。默认情况下,该模块导出 Spring Integration 指标(包括绑定通道指标),但也可以添加其他指标。这使得 Spring Cloud Stream 应用程序中的流量监控得到了第一类支持。
Schema 支持的新功能包括 schema 搜索和客户端级别缓存,后者为序列化支持带来了显著的性能改进。
RabbitMQ 绑定器现在支持自定义目的地类型及其属性,包括支持 Direct Exchanges 和消息的 TTL 设置。
从该版本开始,Spring Cloud Stream 引入了一个新的 provisioning SPI,它抽象了目标 Broker 上目的地(topics, exchanges, queue)的创建和配置。这使得绑定器的基础设施管理和消息传递方面能够更好地分离关注点。
在接下来的几周内,我们将专注于错误修复和文档/示例改进,为 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 活动即将举办,就在您附近
抢票或提交演讲议题!