首页 > 数据库 >Redisson-RTopic

Redisson-RTopic

时间:2024-03-21 15:22:04浏览次数:30  
标签:订阅 Redisson 主题 class 消息 监听器 RTopic

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、创建一个指定发布-订阅的真实类型

/**
* 功能:监听器指定泛型类
*/
@Data
public class RTopicMsgEvent implements Serializable {
  private static final long serialVersionUID = -1L;

  private String orderNo;
}


3、创建一个主题监听器

/**
* 功能:主题消息监听器
*/
@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配置类
*/
@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;
  }
}
————————————————

当某主题的消息被发布到对应主题后,对应主题的泛型类监听器将会对消息进行监听。

标签:订阅,Redisson,主题,class,消息,监听器,RTopic
From: https://www.cnblogs.com/m-zone/p/18087450

相关文章

  • Jackson Redisson反序列化问题
    异常信息com.fasterxml.jackson.databind.exc.MismatchedInputException:Cannotconstructinstanceof`java.util.concurrent.atomic.AtomicInteger`(althoughatleastoneCreatorexists):noint/Int-argumentconstructor/factorymethodtodeserializefromNumberva......
  • redisson序列化采坑那些事儿
    前言如果对springcloud-gateway有了解的同学,应该会知道springcloud-gateway默认提供了一个基于内存的路由定义仓库。org.springframework.cloud.gateway.route.InMemoryRouteDefinitionRepository基于内存的好处,就是快,但是缺点就是网关重启路由就丢失了。为了方便管理网关路由......
  • 【转】[Java]引入Redisson可能会出现项目启动失败问题解决
    转自:https://blog.csdn.net/bengbuguang4321/article/details/121951650在启动项目时,Redisson自己会启动一个Redisson连接池,尝试连接redis,这时候如果遇到网络不通就会出现问题,因为redis连接不上,导致项目启动不了解决方法是:1、重新空实现了一个RedissonClient/***@ClassNa......
  • RedissonRedLock写一个加锁方式,实现自动延时、程序停止就停止延时
    要使用Redisson的RedLock实现加锁,并实现自动延时以及在程序停止时停止延时,你可以按照以下示例代码进行操作:importorg.redisson.Redisson;importorg.redisson.api.RLock;importorg.redisson.api.RedissonClient;importorg.redisson.config.Config;importjava.util.con......
  • Spring Boot 集成 Redisson分布式锁(注解版)
    转载自:https://blog.csdn.net/Ascend1977/article/details/131126047        Redisson是一种基于Redis的Java驻留集群的分布式对象和服务库,可以为我们提供丰富的分布式锁和线程安全集合的实现。在SpringBoot应用程序中使用Redisson可以方便地实现分布式应用......
  • 详解Redisson
    第1章:Redisson简介大家好,我是小黑,咱们今天来聊聊Redisson,Redisson不只是简单地对Redis进行了封装,它还提供了一系列高级的分布式Java数据结构,像是分布式锁、原子长整型这种。首先,Redisson的核心特点是什么呢?它提供了对Redis的各种操作的高层封装,这让咱们在使用Redis时更加方便、......
  • RedissonLock 使用场景以及优缺点分析
    RedissonLock是Redisson库提供的一种基于Redis实现的分布式锁。以下是如何使用RedissonLock以及其优缺点:使用RedissonLock:初始化Redisson客户端:Configconfig=newConfig();config.useSingleServer().setAddress("redis://localhost:6379");RedissonClientredisson......
  • redisson是如何实现锁自动续期的
    Redisson是一个在Redis的基础上实现的Java驻留对象和服务,同时也是一个具有许多功能的Java驻留对象和服务库。Redisson提供了很多分布式相关的服务,其中就包括分布式锁。Redisson的锁自动续期功能主要通过以下方式实现:锁的续期:当一个线程获取了Redisson的锁之后,默认......
  • Redisson分布式锁的实现
    分布式锁在多线程环境下,如果多个线程同时访问共享资源(数据库),往往会发生数据竞争。要想在某一线程访问资源时,令其他线程阻塞等待,就需要使用分布式锁,确保共享资源同时只有一个线程访问。实现思路:向Redis中插入同一key:A插入key,如果成功则获取到锁,B再来插入式发现key已经存在了,则......
  • Redisson 介绍及使用
    目录一、介绍二、作用三、使用示例一、介绍Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-MemoryDataGrid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet,Set,Multimap,SortedSet,Map,List,Queue,BlockingQueue,D......