С помощью пружинных разъема облако для Heroku для того, чтобы подключиться к нескольким базам данных RedisLabs
У меня есть требование для нескольких баз данных RedisLabs для моего приложения, как описано на их домашней странице:
Несколько выделенных баз данных в плане
Мы включаем несколько БД в одном плане, каждый из которых выполняется в отдельном процессе и не блокируется.
Я полагаюсь на Spring Cloud Connectors для подключения к Heroku (или Foreman в local), и, похоже, класс RedisServiceInfoCreator позволяет использовать один RedisLabs URL то есть 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. он использует пул джедаев, который может работать только с одной конечной точкой redis. в этом отношении нет разницы между RedisLabs и базовым redis.
Необходимо создать несколько пулов соединений для работы с несколькими базами данных redis/конечными точками.
Просто для расширения, если вы используете несколько dbs для масштабирования, нет необходимости с RedisLabs, поскольку они поддерживают кластеризацию с помощью одна конечная точка. таким образом, Вы можете просто создать одну БД с таким количеством памяти, как это необходимо, RedisLabs создаст кластер для вас и автоматически масштабирует ваши redis.
Если ваше приложение требует логического разделения, то создание нескольких баз данных-это правильный путь.