下面给出的示例演示如何在 Spring Boot 3 环境下,结合 Spring Cloud Alibaba RocketMQ 来实现一个简单的群聊功能。核心思路是:当用户发送聊天消息时,先把消息发布到 RocketMQ Topic 中,所有“在线”的 Chat 服务实例(或 WebSocket 连接)都通过消费者订阅该 Topic,并将消息广播给对应聊天室的成员。此处示例较为简化,方便你快速上手,实际业务可根据需要进行更完整的身份校验、房间管理、消息记录等扩展。
1. 项目依赖与版本
使用 Spring Boot 3 + Spring Cloud 2022.x + Spring Cloud Alibaba 2022.x,并通过 rocketmq-spring-boot-starter(或 spring-cloud-starter-alibaba-rocketmq
)与 RocketMQ 对接。
示例 pom.xml
片段(版本号仅供演示,请根据实际情况调整):
<properties>
<java.version>17</java.version>
<spring-boot.version>3.0.5</spring-boot.version>
<spring-cloud.version>2022.0.3</spring-cloud.version>
<spring-cloud-alibaba.version>2022.0.0.0-RC1</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Cloud Alibaba -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}