Основное облачное хранилище RedisConnectionFactory

В настоящее время я использую Redis, предоставляемый PCF. Я подключаюсь к нему, используя JedisConnectionFactory из spring-data-redis, предоставляя необходимые конфигурации, например:

@Configuration
public class RedisConfig {

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        final JedisConnectionFactory jedisConFactory = new JedisConnectionFactory();
        jedisConFactory.setHostName("pivotal-redis-host");
        jedisConFactory.setPort(1234);
        jedisConFactory.setPassword("mySecretPassword");
        return jedisConFactory;
    }
}

spring-cloud-config предоставляет AbstractCloudConfig класс который можно использовать для настройки различных подключений. Есть ли какие-то заметные преимущества, которые нужно использовать вместо JedisConnectionFactory? Похоже, нужно предоставить меньше конфигураций, но есть ли другая причина?

public class RedisCloudConfig extends AbstractCloudConfig {
    @Bean
    public RedisConnectionFactory redisConnection() {
        return connectionFactory().redisConnectionFactory();
    }
}

Заранее спасибо.


person Oleg Kuts    schedule 07.05.2018    source источник


Ответы (2)


Основное отличие Spring Cloud Connectors заключается в том, что он считывает служебную информацию из службы Redis, которую вы связали со своим приложением в Cloud Foundry. Затем он автоматически настраивает соединение Redis на основе этой динамически связанной информации.

В вашем примере использования JedisConnectionFactory, а также решения @avhi информация о конфигурации помещается непосредственно в исходный код или файлы конфигурации приложения. В этом случае, если ваша служба изменится, вам придется перенастроить приложение и снова запустить cf push.

С помощью Spring Cloud Connectors вы можете изменять службы, просто отвязав и привязав новую службу Redis через CF и запустив cf restart.

person Daniel Mikusa    schedule 07.05.2018
comment
Спасибо за ответ. Вроде не большая разница, но вполне удобная. - person Oleg Kuts; 08.05.2018

На мой взгляд, даже вам не нужно конкретно определять @Bean конфигурацию.

Вы можете просто использовать автоконфигурацию, просто указав Redis сведения о сервере в application.yml или application.properties.

spring:
  redis:
    host: pivotal-redis-host
    port: 1234
    password: mySecretPassword 
person Avhi    schedule 07.05.2018
comment
Спасибо за ваш ответ. Я знаю, что могу переместить данные конфигурации в файл app.yml, но не знал, что для этих целей существуют определенные свойства spring.redis. - person Oleg Kuts; 08.05.2018
comment
Пожалуйста, отметьте это как ответ на сообщение. Если это поможет вам, это может быть полезно для других членов сообщества. - person Avhi; 24.05.2018