Messaging
Spring Framework 提供了对消息系统集成的广泛支持,从使用 JmsClient 简化 JMS API 的使用,到提供完整的基础设施以异步接收消息。Spring AMQP 为高级消息队列协议(Advanced Message Queuing Protocol)提供了类似的功能集。Spring Boot 还为 RabbitTemplate 和 RabbitMQ 提供了自动配置选项。Spring WebSocket 原生包含对 STOMP 消息的支持,而 Spring Boot 则通过 starter 和少量自动配置来支持该功能。Spring Boot 还支持 Apache Kafka 和 Apache Pulsar。
章节总结
JMS
ConnectionFactory 接口提供了一种标准方法来创建 Connection,用于与 JMS 代理进行交互。尽管 Spring 需要一个 ConnectionFactory 来配合 JMS 工作,但你通常无需直接使用它,而是可以依赖更高层次的消息抽象。(详情请参见 Spring Framework 参考文档的相关章节。)Spring Boot 还会自动配置发送和接收消息所需的基础设施。
AMQP
高级消息队列协议(AMQP)是一种平台无关的、面向消息中间件的线级协议。Spring AMQP 项目将核心 Spring 概念应用于基于 AMQP 的消息解决方案的开发。Spring Boot 通过 RabbitMQ 提供了多种用于处理 AMQP 的便利功能,包括 spring-boot-starter-amqp starter。
Apache Kafka 支持
Apache Kafka 通过提供 spring-kafka 项目的自动配置来支持。
Apache Pulsar 支持
Apache Pulsar 通过提供对 Spring for Apache Pulsar 项目的自动配置来获得支持。
RSocket
RSocket 是一种用于字节流传输的二进制协议。它通过在单个连接上进行异步消息传递,支持对称的交互模型。
Spring Integration
Spring Boot 为使用 Spring Integration 提供了多项便利,包括 spring-boot-starter-integration starter。Spring Integration 提供了对消息传递以及其他传输协议(如 HTTP、TCP 等)的抽象。如果你的 classpath 中包含 Spring Integration,它会通过 @EnableIntegration 注解进行初始化。
WebSockets
Spring Boot 为内嵌的 Tomcat 和 Jetty 提供了 WebSocket 自动配置。如果你将一个 war 文件部署到独立容器中,Spring Boot 会假定该容器负责其 WebSocket 支持的配置。