Как вычисляется размер пула подключений redis в мульти-dyno-среде при использовании конфигурации коннекторов spring cloud?

Мое приложение настроено следующим образом:

@Bean
public RedisConnectionFactory redisConnectionFactory() {
        PoolConfig poolConfig = new PoolConfig(10, 200);// maxPoolSize=10
        return connectionFactory().redisConnectionFactory("REDISCLOUD", new PooledServiceConnectorConfig(poolConfig));
    }

План входа для REDISCLOUD указывает максимум 10 подключений Redis.

Тем не менее, у меня есть два работающих динамометра на данный момент, и у меня может быть больше двух в будущем. Означает ли это, что мое приложение может потреблять 2 соединения dynos * 10 = 20 подключений Redis в данный момент?

Если это так, то это проблема, и я не уверен, как настроить свой пул, например, если я увеличу количество работающих динамов...

Кстати проблема та же с коннекторами реляционных баз данных...

Может кто-нибудь, пожалуйста, посоветуйте?

1 ответ

Отказ от ответственности: я работаю в Redis Labs, поставщике дополнения Redis Cloud для Heroku.

Вы правы - эта настройка потребует 20 подключений, если пул каждого динамометра увеличится до максимума. Соединения с базой данных считаются "дорогим" ресурсом - как для клиента, так и для сервера. Именно поэтому пулы соединений используются приложениями... а также почему поставщики баз данных, такие как Redis Labs, должны взимать плату за них.

Один из способов преодолеть это - обновить план дополнений Redis Cloud в соответствии с вашими требованиями к подключению:) Платные планы гораздо более гибкие, и, начиная с плана 2,5 ГБ, вы получаете неограниченное количество подключений. Используя один из них, вы можете перестать беспокоиться о масштабировании: https://addons.heroku.com/rediscloud

Другие вопросы по тегам