前言:
本章只用于 RTpoic 个人学习经验记录,供后续自我复习,如有错误,欢迎指出~~~
RTpoic简介:
RTpoic 是 Redisson 提供的用于实现发布-订阅(Pub/Sub)模式的类,它封装了 Redis 的发布和订阅功能,让开发者能够轻松地在分布式环境中进行消息的发布和订阅。
实际上类似于Kafka、RocketMQ等一系列MessageQueue的生产-消费关系;
神奇的功能:
自产自销~ 简单的来说,可以实现一个服务中,自己发布消息,自己订阅消息进行消息的分发处理
代码示例:
1、引入redisson依赖
<!-- redis -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.15.5</version>
</dependency>
2、创建一个指定发布-订阅的真实类型
/**
* 功能:监听器指定泛型类
*
* @author aminzi
* @email aminzi97@163.com
* @Date 2024/3/7 20:25
*/
@Data
public class RTopicMsgEvent implements Serializable {
private static final long serialVersionUID = -1L;
private String orderNo;
}
3、创建一个主题监听器
/**
* 功能:主题消息监听器
*
* @author aminzi
* @email aminzi97@163.com
* @Date 2024/3/7 20:27
*/
@Slf4j
@Service
public class RTopicListener implements MessageListener<RTopicMsgEvent> {
public static final String TOPIC = "myRTopic";
@Override
public void onMessage(CharSequence charSequence, RTopicMsgEvent rTopicMsgEvent) {
// 订阅到的消息
System.out.println(rTopicMsgEvent.getOrderNo());
}
}
4、注册Bean
/**
* 功能:RTopic配置类
*
* @author aminzi
* @email aminzi97@163.com
* @Date 2024/3/7 20:24
*/
@Slf4j
@Configuration
public class RTopicConfiguration {
@Autowired
RedissonClient redissonClient;
@Autowired
RTopicListener rTopicListener;
/**
* addListener:泛型类、监听器
* @return
*/
@Bean("rTopicMsgEventHandel")
public RTopic redisDownMsgEventTopic() {
/* 发布对应的主题 */
RTopic topic = redissonClient.getTopic(RTopicListener.TOPIC);
/* 对该主题添加监听器 */
topic.addListener(RTopicMsgEvent.class, rTopicListener);
return topic;
}
}
5、编写测试接口发布消息
/**
* 功能:redis测试接口
*
* @author aminzi
* @email aminzi97@163.com
* @Date 2024/3/7 20:30
*/
@RestController
@RequestMapping("/redis")
public class RTopicController {
@Autowired
RTopic rTopic;
@PostMapping("/rTopicTest")
public String rTopicTest(){
RTopicMsgEvent event = new RTopicMsgEvent();
event.setOrderNo("这是我自己发布的消息");
rTopic.publish(event);
return "rTopicTest";
}
}
6、监听
当某主题的消息被发布到对应主题后,对应主题的泛型真实类监听器将会对消息进行监听
至此,RTopic基础学习到这结束~~~
有问题欢迎指出~~~