首页 > 解决方案 > 未调用订阅者

问题描述

我将 Redis Jedis factory pub/sub 模型用于 2 个 spring 应用程序。发布者应用正在 ChannelTopic 上发送消息,但未调用订阅者的 onMessage。请帮忙。

配置:

@Bean
MessageListenerAdapter messageListenerAdapter() { 
    return new MessageListenerAdapter(new RedisMessageSubscriber());
}

@Bean
ChannelTopic topic() {
    return new ChannelTopic("MY_CHANNEL");
}

@Bean
JedisConnectionFactory jedisConnectionFactory() {
    return new JedisConnectionFactory();
}

@Bean
public RedisMessageListenerContainer redisContainer() {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer(); 
    container.setConnectionFactory(jedisConnectionFactory()); 
    container.addMessageListener((MessageListener) messageListenerAdapter(), topic()); 
    return container; 
}

订阅者:
公共类 RedisMessageSubscriber 实现 MessageListener {

@Override
public void onMessage(Message message, byte[] pattern) {

    System.out.println(" RedisMessageSubscriber Message received: " + message.getChannel()+" body = "+message.getBody());
    }

}

标签: spring-bootredisspring-data-redis

解决方案


推荐阅读