我想申请 spring-session-data-redis
给我的 spring boot
项目。
但是打印的日志 Connection failure occurred. Restarting subscription task after 5000 ms
异常消息为 Pub/Sub connections not supported with Master/Replica configurations
我的redis配置是
public LettuceConnectionFactory lettuceConnectionFactory() {
RedisStaticMasterReplicaConfiguration configuration = new RedisStaticMasterReplicaConfiguration(
MASTER_HOST, MASTER_PORT);
configuration.addNode(SLAVE_HOST, SLAVE_PORT);
LettuceClientConfiguration clientConfig =
LettuceClientConfiguration.builder().readFrom(ReadFrom.REPLICA_PREFERRED).build();
return new LettuceConnectionFactory(configuration, clientConfig);
}
开发于 aws
环境。我的redis环境是从副本读写到主机
所以我们申请了 RedisStaticMasterReplicaConfiguration
根据下面的文件。
对于通过info命令报告非公共地址的环境(例如,在使用aws时),请使用redisticmasterreplicationconfiguration而不是redistandaloneconfiguration。
但是,它不支持 Pub/Sub
根据下面的文件。
请注意,RedisticMasterReplicaConfiguration不支持发布/订阅,因为缺少跨各个服务器的发布/订阅消息传播。
有什么好主意吗?
奇怪的是
打印日志 Connection failure occurred. Restarting subscription task after 5000 ms
但是,它工作得很好 redis
)
其他信息:
正在尝试连接 Pub/Sub
通过这个。 org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration
```
@Bean
public RedisMessageListenerContainer springSessionRedisMessageListenerContainer(
RedisIndexedSessionRepository sessionRepository) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(this.redisConnectionFactory);
if (this.redisTaskExecutor != null) {
container.setTaskExecutor(this.redisTaskExecutor);
}
if (this.redisSubscriptionExecutor != null) {
container.setSubscriptionExecutor(this.redisSubscriptionExecutor);
}
container.addMessageListener(sessionRepository,
Arrays.asList(new ChannelTopic(sessionRepository.getSessionDeletedChannel()),
new ChannelTopic(sessionRepository.getSessionExpiredChannel())));
container.addMessageListener(sessionRepository,
Collections.singletonList(new PatternTopic(sessionRepository.getSessionCreatedChannelPrefix() + "*")));
return container;
}
暂无答案!
目前还没有任何答案,快来回答吧!