Использование Spring Cloud Connector для Heroku для подключения к нескольким базам данных RedisLabs
У меня есть требование для нескольких баз данных RedisLabs для моего приложения, как описано на их домашней странице:
несколько выделенных баз данных в плане
Мы включаем несколько БД в одном плане, каждый из которых работает в выделенном процессе и неблокирующим образом.
Я полагаюсь на Spring Cloud Connectors для подключения к Heroku (или Foreman в локальной сети), и кажется, что класс RedisServiceInfoCreator допускает один URL RedisLabs, т.е. REDISCLOUD_URL
Вот как я настроил мою первую фабрику соединений redis:
@Configuration
@Profile({Profiles.CLOUD, Profiles.DEFAULT})
public class RedisCloudConfiguration extends AbstractCloudConfig {
@Bean
public RedisConnectionFactory redisConnectionFactory() {
PoolConfig poolConfig = ...
return connectionFactory().redisConnectionFactory("REDISCLOUD", new PooledServiceConnectorConfig(poolConfig));
}
...
Как мне настроить вторую фабрику соединений, если я собираюсь использовать несколько баз данных redis labs?
2 ответа
Redis Cloud установит для вас env var только для первого ресурса в каждом создаваемом дополнении.
Если вы создаете несколько ресурсов в дополнении, вы должны либо сами установить env var, либо использовать новую конечную точку непосредственно в своем коде.
Короче говоря, ответ да, RedisConnectionFactory должен использовать Jedis для подключения к вашей базе данных Redis. он использует пул jedis, который может работать только с одной конечной точкой redis. в этом отношении нет никаких различий между RedisLabs и базовым Redis.
вам нужно создать несколько пулов соединений для работы с несколькими redis dbs / endpoints.
просто для расширения, если вы используете несколько БД для масштабирования, с RedisLabs нет необходимости, поскольку они поддерживают кластеризацию с одной конечной точкой. так что вы можете просто создать один БД с таким количеством памяти, сколько необходимо, RedisLabs создаст для вас кластер и автоматически масштабирует ваш Redis.
если вашему приложению требуется логическое разделение, то создание нескольких баз данных - правильный путь.