2014-10-24 5 views
2

У меня есть требование для многократного RedisLabs баз данных для моего приложения, как описаны в их домашней странице:Использования Spring Cloud Connector для Heroku для того, чтобы подключиться к нескольким RedisLabs базов данных

нескольких выделенных базы данных в плане

Мы включаем несколько БД в единый план, каждый из которых выполняется в отдельном процессе и неблокирует.

Я полагаюсь на Spring Cloud Connectors для того, чтобы подключиться к Heroku (или Форман в местном) и, кажется, класс 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 лаборатории баз данных?

ответ

1

Redis Cloud установит для вас env var только для первого ресурса в каждом дополнении, которое вы создаете.

Если вы создаете несколько ресурсов в надстройке, вы должны либо установить env var самостоятельно, либо использовать новую конечную точку непосредственно в своем коде.

0

Короче говоря, RedisConnectionFactory должен использовать Jedis для подключения к вашему redis db. он использует пул jedis, который может работать только с одной конечной точкой redis. в этом отношении нет никакого различия между RedisLabs и базовым redis.

вы должны создать несколько пулов соединений для работы с несколькими redis dbs/endpoints.

просто для расширения, если вы используете несколько dbs для масштабирования, нет необходимости в RedisLabs, поскольку они поддерживают кластеризацию с одной конечной точкой. поэтому вы можете просто создать единый db с таким количеством памяти, сколько необходимо, RedisLabs создаст для вас кластер и автоматически масштабирует ваш redis.

Если приложение требует логического разделения, то создание нескольких dbs - это правильный путь.

+0

Привет, Гай Любович, Спасибо вам за ответ. Однако мой вопрос связан с настройкой второй фабрики подключений и, более конкретно, для указания в качестве второго URL-адреса (имя переменной среды). – balteo

+0

Мне нужно логическое разделение, поэтому я не могу использовать ни одного db – balteo

+0

Пожалуйста, также нести вопрос, связанный с разъемом Heroku/spring cloud. – balteo