refactor(mq): 重构笔记收藏与点赞的MQ消费者实现以提升性能和可靠性
- 使用DefaultMQPushConsumer替代RocketMQListener以支持批量消费 - 实现消息批量处理逻辑,减少数据库交互次数 - 添加内存级操作合并,避免重复操作写入数据库 - 配置流量削峰限流,控制数据库QPS在可接受范围 - 增加重试机制和手动ACK确保消息可靠消费 - 调整MQ主题订阅关系,统一消息流转逻辑 - 新增RocketMQ客户端依赖以支持底层API调 - 优化消费者启动和销毁流程,确保资源正确释放 - 修改Mapper支持批量插入或更新操作 - 调整计数服务消费主题,简化消息链路
This commit is contained in:
@@ -2,6 +2,16 @@ package com.hanserwei.hannote.count.biz.constant;
|
||||
|
||||
public interface MQConstants {
|
||||
|
||||
/**
|
||||
* Topic: 计数 - 笔记点赞数
|
||||
*/
|
||||
String TOPIC_LIKE_OR_UNLIKE = "LikeUnlikeTopic";
|
||||
|
||||
/**
|
||||
* Topic: 笔记收藏、取消收藏
|
||||
*/
|
||||
String TOPIC_COLLECT_OR_UN_COLLECT = "CollectUnCollectTopic";
|
||||
|
||||
/**
|
||||
* Topic: 关注数计数
|
||||
*/
|
||||
|
||||
@@ -29,8 +29,8 @@ import java.util.stream.Collectors;
|
||||
@Component
|
||||
@Slf4j
|
||||
@RocketMQMessageListener(
|
||||
consumerGroup = "han_note_group_" + MQConstants.TOPIC_COUNT_NOTE_COLLECT,
|
||||
topic = MQConstants.TOPIC_COUNT_NOTE_COLLECT
|
||||
consumerGroup = "han_note_group_" + MQConstants.TOPIC_COLLECT_OR_UN_COLLECT,
|
||||
topic = MQConstants.TOPIC_COLLECT_OR_UN_COLLECT
|
||||
)
|
||||
public class CountNoteCollectConsumer implements RocketMQListener<String> {
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ import java.util.stream.Collectors;
|
||||
@Component
|
||||
@Slf4j
|
||||
@RocketMQMessageListener(
|
||||
consumerGroup = "han_note_group_" + MQConstants.TOPIC_COUNT_NOTE_LIKE,
|
||||
topic = MQConstants.TOPIC_COUNT_NOTE_LIKE
|
||||
consumerGroup = "han_note_group_" + MQConstants.TOPIC_LIKE_OR_UNLIKE,
|
||||
topic = MQConstants.TOPIC_LIKE_OR_UNLIKE
|
||||
)
|
||||
public class CountNoteLikeConsumer implements RocketMQListener<String> {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user