feat(mq): 实现 websopy 端 RabbitMQ 消费者功能
- 新增 SyncMessage.java 定义 websopy 端消息实体,复用 server-api 格式 - 新增 RabbitMQConfig.java 配置交换机、队列及死信队列 - 新增 SyncMessageConsumer.java 实现 USER_SYNC 消息监听与处理 - 修改 pom.xml,添加 spring-boot-starter-amqp 依赖 - 修改 application.yml,添加 RabbitMQ 连接配置和开关 - 优化消息生产者 RabbitMQSyncProducer 代码,移除多余注解 - 设计 server-api -> RabbitMQ -> websopy-java -> AppUserCacheService 流程接口
This commit is contained in:
@@ -100,3 +100,26 @@
|
||||
### 使用方式
|
||||
配置 `sync.mq.enabled: false` 可临时禁用MQ,回退到原有直接同步方式。
|
||||
|
||||
|
||||
## websopy 端 MQ 消费者实现 (02:50)
|
||||
|
||||
### 创建的文件
|
||||
1. **SyncMessage.java** - websopy 端消息实体
|
||||
- 位置: `com.gxwebsoft.common.mq.message`
|
||||
- 简化版,复用 server-api 发来的消息格式
|
||||
|
||||
2. **RabbitMQConfig.java** - websopy 端 RabbitMQ 配置
|
||||
- 位置: `com.gxwebsoft.common.mq.config`
|
||||
- 配置交换机、队列、死信队列
|
||||
|
||||
3. **SyncMessageConsumer.java** - websopy 端消息消费者
|
||||
- 位置: `com.gxwebsoft.common.mq.consumer`
|
||||
- 监听 USER_SYNC 消息,调用 AppUserCacheService 保存/更新/删除用户
|
||||
|
||||
### 修改的文件
|
||||
1. **pom.xml** - 添加 spring-boot-starter-amqp 依赖
|
||||
2. **application.yml** - 添加 RabbitMQ 连接配置和开关
|
||||
|
||||
### 工作流程
|
||||
server-api (生产者) -> RabbitMQ -> websopy-java (消费者) -> AppUserCacheService
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.springframework.amqp.support.converter.MessageConverter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Autowired;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -29,7 +29,6 @@ public class RabbitMQSyncProducer implements SyncMessageProducer, RabbitTemplate
|
||||
private final MessageConverter messageConverter;
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
@Autowired
|
||||
public RabbitMQSyncProducer(RabbitTemplate rabbitTemplate, MessageConverter messageConverter, ObjectMapper objectMapper) {
|
||||
this.rabbitTemplate = rabbitTemplate;
|
||||
this.messageConverter = messageConverter;
|
||||
|
||||
Reference in New Issue
Block a user