【问题标题】:Pivotal cloud foundry RedisConnectionFactoryPivotal 云代工 RedisConnectionFactory
【发布时间】:2018-10-17 03:17:00
【问题描述】:

目前我使用的是 PCF 提供的 Redis。我使用来自spring-data-redisJedisConnectionFactory 连接到它,提供如下所需的配置:

@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-configprovidesAbstractCloudConfig类,可用于配置各种连接。是否有任何明显的好处必须使用它来代替JedisConnectionFactory?看起来需要提供的配置较少,但还有其他原因吗?

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

提前致谢。

【问题讨论】:

    标签: cloud-foundry spring-cloud-config spring-data-redis


    【解决方案1】:

    Spring Cloud Connectors 的主要区别在于它从您绑定到 Cloud Foundry 上的应用程序的 Redis 服务中读取服务信息。然后它会根据动态绑定的信息自动配置 Redis 连接。

    您使用JedisConnectionFactory 的示例以及@avhi 的解决方案是将配置信息直接放入您的源代码或应用程序配置文件中。在这种情况下,如果您的服务发生变化,那么您需要重新配置您的应用程序并再次运行cf push

    使用 Spring Cloud Connectors,您可以通过简单地通过 CF 解绑和绑定新的 Redis 服务并运行 cf restart 来更改服务。

    【讨论】:

    • 感谢您的回复。看起来差别不大,但很方便。
    【解决方案2】:

    在我看来,即使您不需要专门定义 @Bean 配置。

    您可以通过在application.ymlapplication.properties 中提供Redis 服务器详细信息来简单地使用自动配置。

    spring:
      redis:
        host: pivotal-redis-host
        port: 1234
        password: mySecretPassword 
    

    【讨论】:

    • 感谢您的回复。我知道我可以将配置数据移动到 app.yml 文件,但不知道有用于此目的的特定 spring.redis 属性。
    • 请在帖子上“标记为答案”如果对您有帮助,这可能对其他社区成员有益。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多