Commit e1c34e912458abaae2cde27c85e0e2bb00b785a6
1 parent
f8ed0e15
mq:优化 redis stream 的命名
Showing
8 changed files
with
21 additions
and
20 deletions
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQAutoConfiguration.java
| @@ -7,8 +7,8 @@ import cn.iocoder.yudao.framework.common.enums.DocumentEnum; | @@ -7,8 +7,8 @@ import cn.iocoder.yudao.framework.common.enums.DocumentEnum; | ||
| 7 | import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; | 7 | import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; |
| 8 | import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; | 8 | import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; |
| 9 | import cn.iocoder.yudao.framework.mq.redis.core.job.RedisPendingMessageResendJob; | 9 | import cn.iocoder.yudao.framework.mq.redis.core.job.RedisPendingMessageResendJob; |
| 10 | -import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractChannelMessageListener; | ||
| 11 | -import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractStreamMessageListener; | 10 | +import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessageListener; |
| 11 | +import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; | ||
| 12 | import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; | 12 | import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; |
| 13 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 14 | import org.redisson.api.RedissonClient; | 14 | import org.redisson.api.RedissonClient; |
| @@ -57,9 +57,9 @@ public class YudaoRedisMQAutoConfiguration { | @@ -57,9 +57,9 @@ public class YudaoRedisMQAutoConfiguration { | ||
| 57 | * 创建 Redis Pub/Sub 广播消费的容器 | 57 | * 创建 Redis Pub/Sub 广播消费的容器 |
| 58 | */ | 58 | */ |
| 59 | @Bean(initMethod = "start", destroyMethod = "stop") | 59 | @Bean(initMethod = "start", destroyMethod = "stop") |
| 60 | - @ConditionalOnBean(AbstractChannelMessageListener.class) // 只有 AbstractChannelMessageListener 存在的时候,才需要注册 Redis pubsub 监听 | 60 | + @ConditionalOnBean(AbstractRedisChannelMessageListener.class) // 只有 AbstractChannelMessageListener 存在的时候,才需要注册 Redis pubsub 监听 |
| 61 | public RedisMessageListenerContainer redisMessageListenerContainer( | 61 | public RedisMessageListenerContainer redisMessageListenerContainer( |
| 62 | - RedisMQTemplate redisMQTemplate, List<AbstractChannelMessageListener<?>> listeners) { | 62 | + RedisMQTemplate redisMQTemplate, List<AbstractRedisChannelMessageListener<?>> listeners) { |
| 63 | // 创建 RedisMessageListenerContainer 对象 | 63 | // 创建 RedisMessageListenerContainer 对象 |
| 64 | RedisMessageListenerContainer container = new RedisMessageListenerContainer(); | 64 | RedisMessageListenerContainer container = new RedisMessageListenerContainer(); |
| 65 | // 设置 RedisConnection 工厂。 | 65 | // 设置 RedisConnection 工厂。 |
| @@ -78,8 +78,8 @@ public class YudaoRedisMQAutoConfiguration { | @@ -78,8 +78,8 @@ public class YudaoRedisMQAutoConfiguration { | ||
| 78 | * 创建 Redis Stream 重新消费的任务 | 78 | * 创建 Redis Stream 重新消费的任务 |
| 79 | */ | 79 | */ |
| 80 | @Bean | 80 | @Bean |
| 81 | - @ConditionalOnBean(AbstractStreamMessageListener.class) // 只有 AbstractStreamMessageListener 存在的时候,才需要注册 Redis pubsub 监听 | ||
| 82 | - public RedisPendingMessageResendJob redisPendingMessageResendJob(List<AbstractStreamMessageListener<?>> listeners, | 81 | + @ConditionalOnBean(AbstractRedisStreamMessageListener.class) // 只有 AbstractStreamMessageListener 存在的时候,才需要注册 Redis pubsub 监听 |
| 82 | + public RedisPendingMessageResendJob redisPendingMessageResendJob(List<AbstractRedisStreamMessageListener<?>> listeners, | ||
| 83 | RedisMQTemplate redisTemplate, | 83 | RedisMQTemplate redisTemplate, |
| 84 | @Value("${spring.application.name}") String groupName, | 84 | @Value("${spring.application.name}") String groupName, |
| 85 | RedissonClient redissonClient) { | 85 | RedissonClient redissonClient) { |
| @@ -92,9 +92,9 @@ public class YudaoRedisMQAutoConfiguration { | @@ -92,9 +92,9 @@ public class YudaoRedisMQAutoConfiguration { | ||
| 92 | * 基础知识:<a href="https://www.geek-book.com/src/docs/redis/redis/redis.io/commands/xreadgroup.html">Redis Stream 的 xreadgroup 命令</a> | 92 | * 基础知识:<a href="https://www.geek-book.com/src/docs/redis/redis/redis.io/commands/xreadgroup.html">Redis Stream 的 xreadgroup 命令</a> |
| 93 | */ | 93 | */ |
| 94 | @Bean(initMethod = "start", destroyMethod = "stop") | 94 | @Bean(initMethod = "start", destroyMethod = "stop") |
| 95 | - @ConditionalOnBean(AbstractStreamMessageListener.class) // 只有 AbstractStreamMessageListener 存在的时候,才需要注册 Redis pubsub 监听 | 95 | + @ConditionalOnBean(AbstractRedisStreamMessageListener.class) // 只有 AbstractStreamMessageListener 存在的时候,才需要注册 Redis pubsub 监听 |
| 96 | public StreamMessageListenerContainer<String, ObjectRecord<String, String>> redisStreamMessageListenerContainer( | 96 | public StreamMessageListenerContainer<String, ObjectRecord<String, String>> redisStreamMessageListenerContainer( |
| 97 | - RedisMQTemplate redisMQTemplate, List<AbstractStreamMessageListener<?>> listeners) { | 97 | + RedisMQTemplate redisMQTemplate, List<AbstractRedisStreamMessageListener<?>> listeners) { |
| 98 | RedisTemplate<String, ?> redisTemplate = redisMQTemplate.getRedisTemplate(); | 98 | RedisTemplate<String, ?> redisTemplate = redisMQTemplate.getRedisTemplate(); |
| 99 | checkRedisVersion(redisTemplate); | 99 | checkRedisVersion(redisTemplate); |
| 100 | // 第一步,创建 StreamMessageListenerContainer 容器 | 100 | // 第一步,创建 StreamMessageListenerContainer 容器 |
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/RedisMQTemplate.java
| @@ -3,8 +3,8 @@ package cn.iocoder.yudao.framework.mq.redis.core; | @@ -3,8 +3,8 @@ package cn.iocoder.yudao.framework.mq.redis.core; | ||
| 3 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | 3 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 4 | import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; | 4 | import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; |
| 5 | import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; | 5 | import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; |
| 6 | -import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractChannelMessage; | ||
| 7 | -import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractStreamMessage; | 6 | +import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessage; |
| 7 | +import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractRedisStreamMessage; | ||
| 8 | import lombok.AllArgsConstructor; | 8 | import lombok.AllArgsConstructor; |
| 9 | import lombok.Getter; | 9 | import lombok.Getter; |
| 10 | import org.springframework.data.redis.connection.stream.RecordId; | 10 | import org.springframework.data.redis.connection.stream.RecordId; |
| @@ -35,7 +35,7 @@ public class RedisMQTemplate { | @@ -35,7 +35,7 @@ public class RedisMQTemplate { | ||
| 35 | * | 35 | * |
| 36 | * @param message 消息 | 36 | * @param message 消息 |
| 37 | */ | 37 | */ |
| 38 | - public <T extends AbstractChannelMessage> void send(T message) { | 38 | + public <T extends AbstractRedisChannelMessage> void send(T message) { |
| 39 | try { | 39 | try { |
| 40 | sendMessageBefore(message); | 40 | sendMessageBefore(message); |
| 41 | // 发送消息 | 41 | // 发送消息 |
| @@ -51,7 +51,7 @@ public class RedisMQTemplate { | @@ -51,7 +51,7 @@ public class RedisMQTemplate { | ||
| 51 | * @param message 消息 | 51 | * @param message 消息 |
| 52 | * @return 消息记录的编号对象 | 52 | * @return 消息记录的编号对象 |
| 53 | */ | 53 | */ |
| 54 | - public <T extends AbstractStreamMessage> RecordId send(T message) { | 54 | + public <T extends AbstractRedisStreamMessage> RecordId send(T message) { |
| 55 | try { | 55 | try { |
| 56 | sendMessageBefore(message); | 56 | sendMessageBefore(message); |
| 57 | // 发送消息 | 57 | // 发送消息 |
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/job/RedisPendingMessageResendJob.java
| @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.mq.redis.core.job; | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.mq.redis.core.job; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; | 4 | import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; |
| 5 | -import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractStreamMessageListener; | 5 | +import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; |
| 6 | import lombok.AllArgsConstructor; | 6 | import lombok.AllArgsConstructor; |
| 7 | import lombok.extern.slf4j.Slf4j; | 7 | import lombok.extern.slf4j.Slf4j; |
| 8 | import org.redisson.api.RLock; | 8 | import org.redisson.api.RLock; |
| @@ -33,7 +33,7 @@ public class RedisPendingMessageResendJob { | @@ -33,7 +33,7 @@ public class RedisPendingMessageResendJob { | ||
| 33 | */ | 33 | */ |
| 34 | private static final int EXPIRE_TIME = 5 * 60; | 34 | private static final int EXPIRE_TIME = 5 * 60; |
| 35 | 35 | ||
| 36 | - private final List<AbstractStreamMessageListener<?>> listeners; | 36 | + private final List<AbstractRedisStreamMessageListener<?>> listeners; |
| 37 | private final RedisMQTemplate redisTemplate; | 37 | private final RedisMQTemplate redisTemplate; |
| 38 | private final String groupName; | 38 | private final String groupName; |
| 39 | private final RedissonClient redissonClient; | 39 | private final RedissonClient redissonClient; |
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractChannelMessage.java renamed to yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java
| @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 8 | * | 8 | * |
| 9 | * @author 芋道源码 | 9 | * @author 芋道源码 |
| 10 | */ | 10 | */ |
| 11 | -public abstract class AbstractChannelMessage extends AbstractRedisMessage { | 11 | +public abstract class AbstractRedisChannelMessage extends AbstractRedisMessage { |
| 12 | 12 | ||
| 13 | /** | 13 | /** |
| 14 | * 获得 Redis Channel,默认使用类名 | 14 | * 获得 Redis Channel,默认使用类名 |
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractChannelMessageListener.java renamed to yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java
| @@ -20,7 +20,7 @@ import java.util.List; | @@ -20,7 +20,7 @@ import java.util.List; | ||
| 20 | * | 20 | * |
| 21 | * @author 芋道源码 | 21 | * @author 芋道源码 |
| 22 | */ | 22 | */ |
| 23 | -public abstract class AbstractChannelMessageListener<T extends AbstractChannelMessage> implements MessageListener { | 23 | +public abstract class AbstractRedisChannelMessageListener<T extends AbstractRedisChannelMessage> implements MessageListener { |
| 24 | 24 | ||
| 25 | /** | 25 | /** |
| 26 | * 消息类型 | 26 | * 消息类型 |
| @@ -37,7 +37,7 @@ public abstract class AbstractChannelMessageListener<T extends AbstractChannelMe | @@ -37,7 +37,7 @@ public abstract class AbstractChannelMessageListener<T extends AbstractChannelMe | ||
| 37 | private RedisMQTemplate redisMQTemplate; | 37 | private RedisMQTemplate redisMQTemplate; |
| 38 | 38 | ||
| 39 | @SneakyThrows | 39 | @SneakyThrows |
| 40 | - protected AbstractChannelMessageListener() { | 40 | + protected AbstractRedisChannelMessageListener() { |
| 41 | this.messageType = getMessageClass(); | 41 | this.messageType = getMessageClass(); |
| 42 | this.channel = messageType.getDeclaredConstructor().newInstance().getChannel(); | 42 | this.channel = messageType.getDeclaredConstructor().newInstance().getChannel(); |
| 43 | } | 43 | } |
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractStreamMessage.java renamed to yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java
| @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 8 | * | 8 | * |
| 9 | * @author 芋道源码 | 9 | * @author 芋道源码 |
| 10 | */ | 10 | */ |
| 11 | -public abstract class AbstractStreamMessage extends AbstractRedisMessage { | 11 | +public abstract class AbstractRedisStreamMessage extends AbstractRedisMessage { |
| 12 | 12 | ||
| 13 | /** | 13 | /** |
| 14 | * 获得 Redis Stream Key,默认使用类名 | 14 | * 获得 Redis Stream Key,默认使用类名 |
yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractStreamMessageListener.java renamed to yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java
| @@ -22,7 +22,7 @@ import java.util.List; | @@ -22,7 +22,7 @@ import java.util.List; | ||
| 22 | * | 22 | * |
| 23 | * @author 芋道源码 | 23 | * @author 芋道源码 |
| 24 | */ | 24 | */ |
| 25 | -public abstract class AbstractStreamMessageListener<T extends AbstractStreamMessage> | 25 | +public abstract class AbstractRedisStreamMessageListener<T extends AbstractRedisStreamMessage> |
| 26 | implements StreamListener<String, ObjectRecord<String, String>> { | 26 | implements StreamListener<String, ObjectRecord<String, String>> { |
| 27 | 27 | ||
| 28 | /** | 28 | /** |
| @@ -48,7 +48,7 @@ public abstract class AbstractStreamMessageListener<T extends AbstractStreamMess | @@ -48,7 +48,7 @@ public abstract class AbstractStreamMessageListener<T extends AbstractStreamMess | ||
| 48 | private RedisMQTemplate redisMQTemplate; | 48 | private RedisMQTemplate redisMQTemplate; |
| 49 | 49 | ||
| 50 | @SneakyThrows | 50 | @SneakyThrows |
| 51 | - protected AbstractStreamMessageListener() { | 51 | + protected AbstractRedisStreamMessageListener() { |
| 52 | this.messageType = getMessageClass(); | 52 | this.messageType = getMessageClass(); |
| 53 | this.streamKey = messageType.getDeclaredConstructor().newInstance().getStreamKey(); | 53 | this.streamKey = messageType.getDeclaredConstructor().newInstance().getStreamKey(); |
| 54 | } | 54 | } |
yudao-framework/yudao-spring-boot-starter-mq/《芋道 Spring Boot 事件机制 Event 入门》.md
0 → 100644
| 1 | +<http://www.iocoder.cn/Spring-Boot/Event/?yudao> |