spring-boot. 结合redis 实现消息队列

导入依赖jar包

XML 复制代码
        <!-- redis 配置信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

实现消息监听接口 MessageListener\重写 onMessage方法

java 复制代码
/**
 * @author haizhuangbu
 * @date 2024/3/31 11:30
 * @mark UserInfoRegisterTopicListen
 */
@Component
@Slf4j
public class UserInfoRegisterTopicListen implements MessageListener {

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Override
    public void onMessage(Message message, byte[] bytes) {
        log.info("接收到redis消息队列消息 : {}", message.toString());
    }
}

绑定 topic 与 监听器

java 复制代码
@Configuration
public class RedisTopicQueueConfig {

    @Autowired
    private UserInfoRegisterTopicListen userInfoRegisterTopicListen;


    /**
     * @param connectionFactory 连接工厂
     * @return redis 监听容器
     */
    @Bean
    public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
        RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
        redisMessageListenerContainer.setConnectionFactory(connectionFactory); // 连接工厂
        redisMessageListenerContainer
                // 配置适配器与对应消息队列信息
                .addMessageListener(new MessageListenerAdapter(userInfoRegisterTopicListen, MessageListenerAdapter.ORIGINAL_DEFAULT_LISTENER_METHOD),
                        new ChannelTopic(RedisTopicQueueEnum.USER_REGISTER.getTopic()));
        return redisMessageListenerContainer;
    }

}

测试

代码测试
java 复制代码
redisTemplate.convertAndSend("userRegister", String.format("用户 %s 注册失败", userDto.getUsername()));
消息消费成功
相关推荐
Genie cloud7 分钟前
外贸独立站建站完整教程
服务器·数据库·云计算
2301_8223650311 分钟前
数据分析与科学计算
jvm·数据库·python
brave_zhao14 分钟前
达梦数据库导出表结构语句(很好用)(在达梦工具上可执行)
数据库
Gauss松鼠会18 分钟前
【openGauss】openGauss 中一个数据库可以被多个用户访问
数据库·sql·性能优化·database·opengauss
h7ml21 分钟前
高并发场景下查券返利机器人的请求合并与缓存预热策略(Redis + Caffeine 实践)
数据库·redis·缓存
tudficdew23 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
茁壮成长的露露25 分钟前
PMM监控MongoDB
数据库·mongodb
Funky_oaNiu27 分钟前
Oracle如何将用户下的一个表空间的数据迁移到另一个表空间
数据库·oracle
爱学习的阿磊30 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
Full Stack Developme41 分钟前
数据存储的底层都是字符,但在使用时候怎么能变化出各种字段类型
数据库