【问题标题】:Redis Pub/Sub with Java spring使用 Java 弹簧的 Redis Pub/Sub
【发布时间】:2019-12-02 14:55:34
【问题描述】:

我使用 Java 创建具有单个主题和单个侦听器的 Redis Pub/Sub,例如谢谢:

这是我在 MvcConfigurer 中的 Bean:

@Bean
    MessageListenerAdapter messageListener() {
        return new MessageListenerAdapter(redisMsgHandler);
    }

    @Bean
    public RedisMessageListenerContainer redisMessageListenerContainer() {
        RedisMessageListenerContainer mlc = new RedisMessageListenerContainer();
        mlc.setConnectionFactory(lettuceConnectionFactory());
        mlc.addMessageListener(messageListener(), topic());
        return mlc;
    }

    @Bean
    ChannelTopic topic() {
        return new ChannelTopic("pubsub:queue");
    }

那是我收到消息的地方,请不要将此 RedisMsghandler 类用于 MvcConfigurer

public class RedisMsgHandler implements MessageListener {

    @Override
    public void onMessage(Message message, byte[] bytes) {
   //impl goes here
    }
} 

我的主要目标是创建多个主题和多个侦听器,例如 RedisMsgHandler,请告诉我如何去做。

创建大量在 MessageListener 上实现的类以及为每个主题创建大量 bean 让我感到不舒服

【问题讨论】:

    标签: java spring redis publish-subscribe


    【解决方案1】:

    设法像这样修复它:

    @Bean
    public RedisMessageListenerContainer redisMessageListenerContainer() {
        RedisMessageListenerContainer mlc = new RedisMessageListenerContainer();
    
        mlc.setConnectionFactory(lettuceConnectionFactory());
        mlc.addMessageListener(new MessageListenerAdapter(redisMsgHandler), 
                               new ChannelTopic("pubsub:queue");
    
    
        mlc.addMessageListener(new MessageListenerAdapter(redisMsgHandlerAnother), 
                               new ChannelTopic("pubsub:Otherqueue");
    
        return mlc;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-12-01
      • 2015-11-09
      • 1970-01-01
      • 2016-01-18
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多