Messaging
Spring Framework 提供了对消息系统集成的广泛支持,从使用 JmsTemplate 简化 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 和 Undertow 提供了 WebSocket 自动配置。如果你将一个 war 文件部署到独立的容器中,Spring Boot 会假定该容器负责其 WebSocket 支持的配置。