XuqmGroup-Server/im-service/src/main/java/com/xuqm/im/cluster/ClusterMessage.java
XuqmGroup 37f34876be feat(im): Redis Pub/Sub 集群广播,支持水平扩展
架构变更:
- 新增 cluster/ClusterMessage.java:消息信封 record
- 新增 cluster/ImClusterPublisher.java:发布到 Redis im:broadcast 频道
- 新增 cluster/ImClusterListener.java:订阅 Redis,转发给本地 WS 会话
- 新增 config/RedisClusterConfig.java:注册 Redis 监听容器
- 修改 MessageService:send/revoke 改用 ImClusterPublisher 替代直接推送

集群路由原理:任意节点收到消息 → 写 DB → 发布 Redis →
所有节点监听并尝试推送 → 只有持有目标 session 的节点实际送达

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 15:08:54 +08:00

6 行
151 B
Java

package com.xuqm.im.cluster;
import com.xuqm.im.entity.ImMessageEntity;
public record ClusterMessage(String destination, ImMessageEntity message) {}