【问题标题】:Using Spring Cloud Connector for Heroku in order to connect to multiple RedisLabs databases使用 Spring Cloud Connector for Heroku 连接多个 RedisLabs 数据库
【发布时间】:2014-10-24 20:25:45
【问题描述】:

我的应用程序需要多个 RedisLabs 数据库,如其主页所述:

一个计划中有多个专用数据库

我们在一个计划中启用多个数据库,每个数据库都在专用进程中以非阻塞方式运行。

我依靠Spring Cloud Connectors 来连接到 Heroku(或本地的 Foreman),似乎 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 实验室数据库,我应该如何配置 第二个连接工厂

【问题讨论】:

    标签: heroku redis spring-cloud redislabs


    【解决方案1】:

    Redis Cloud 只会为您创建的每个附加组件中的第一个资源设置一个 env var。

    如果您在插件中创建多个资源,您应该自己设置一个 env var,或者直接在代码中使用新端点。

    【讨论】:

      【解决方案2】:

      简而言之,答案是肯定的,RedisConnectionFactory 应该使用 Jedis 来连接到您的 redis 数据库。它正在使用只能与单个 redis 端点一起使用的 jedis 池。在这方面,RedisLabs 和基本的 redis 没有区别。

      您应该创建多个连接池以使用多个 redis 数据库/端点。

      只是为了扩展,如果您使用多个数据库进行扩展,则不需要 RedisLabs,因为它们支持使用单个端点进行集群。因此您可以根据需要简单地创建具有尽可能多内存的单个数据库,RedisLabs 将为您创建一个集群并自动扩展您的 redis。

      如果您的应用确实需要逻辑分隔,那么创建多个数据库是正确的方法。

      【讨论】:

      • 您好 Guy Lubovitch,感谢您的回复。但是我的问题与配置第二个连接工厂有关,更具体地说,要指定什么作为第二个 url(环境变量名)。
      • 我确实需要逻辑分离,所以我不能使用单个数据库
      • 也请承担与 Heroku/spring 云连接器有关的问题。
      • 我对这个问题的回答是,您需要为第二个数据库和每个数据库添加一个新配置。您也可以使用绝地武士池来完成。稍后我将尝试提供一个完整的示例
      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2014-03-15
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多