事件驱动
事件驱动系统反映了现代业务的实际运作方式——每天都有成千上万的小变化发生。Spring 处理事件并使开发人员能够围绕事件构建应用程序的能力,意味着您的应用程序将与您的业务保持同步。Spring 提供了多种事件驱动选项供您选择,从集成和流媒体一直到云函数和数据流。
事件驱动的微服务
当与微服务结合时,事件流开辟了激动人心的机会——事件驱动架构就是一个常见的例子。Spring 简化了事件的生产、处理和消费,提供了几个有用的抽象。
流数据
流数据表示事件的持续流动。一个例子可能是股票行情自动收录器。每当股票价格变化时,就会创建一个新事件。这被称为“流数据”,因为有数千个此类事件导致持续的数据流。
集成
任何事件驱动系统的基石都是消息处理。连接到消息平台,路由消息,转换消息,处理消息。使用 Spring,您可以快速解决这些集成挑战。

Spring Cloud Stream
Spring Cloud Stream 提高了您在使用 Apache Kafka、RabbitMQ、Azure Event Hub 等时的生产力,提供了三个关键抽象来简化您的代码。“绑定器(Binders)”与外部消息系统集成。“绑定(Bindings)”弥合了消息系统和您的代码之间的差距。“消息(Messages)”提供了您的代码用于发送和接收数据的结构。
Spring Cloud Stream 还支持配置、内容转换、错误处理、配置管理、消费者组、分区、监控和健康检查。
Spring [Cloud] Stream 和 Spring 解决方案帮助我们为命令式和反应式需求提供一个有凝聚力的解决方案。
ANIL GURSEL,PayPal 软件工程师
Spring Cloud Function
Spring Cloud Function 使您能够编写一次函数并在任何地方运行它们(AWS、Azure 等),同时继续使用所有熟悉且全面的 Spring API。您可以将多个函数链接在一起以创建新功能。对多个输入和输出的支持使合并、连接和其他更高级的用例触手可及。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Beanpublic Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}
Spring Cloud Data Flow
Spring Cloud Data Flow 为开发人员提供了各种工具和自动化功能,用于处理各种数据源和目标。Spring Cloud Data Flow 帮助您开发、部署、管理和扩展跨多个云原生平台的高吞吐量流数据管道。它还具有丰富的用户界面,用于构建和监控您的应用程序。
Spring Cloud Kafka Streams
Spring Cloud Stream 提供了第二个更具体的绑定器,专门用于使用 Kafka Streams。这个特殊的绑定器仍然专注于开发人员生产力,但增加了对 Kafka 特定功能(如 KStream、KTable 和 GlobalKTable)的支持。与常规 Spring Cloud Stream 一样,绑定器还负责连接到 Kafka,以及创建、配置和维护流和主题。
Spring AMQP 和 Spring for Apache Kafka
通过 Spring AMQP 和 Spring for Apache Kafka 项目,您可以将核心 Spring 概念应用于基于 Kafka 或 RabbitMQ 的消息解决方案的开发。
两者都包含“模板”作为高级消息处理抽象,并支持带有“监听器容器”的消息驱动 POJO。
Spring Integration
应用程序集成是每个企业面临的挑战。Spring Integration 通过扩展流行的 Spring 编程模型以包含所有最常见的集成模式来减轻这一负担。它为消息平台、通信协议、文件系统和服务提供商提供了现成的连接器,以及消息路由、数据转换和过滤器等常见模式的实现。