Настройка пула соединений с использованием Hikari в Spring Boot 2 с несколькими базами данных - PullRequest
0 голосов
/ 24 января 2020

Я использую весеннюю загрузку 2, я соединяюсь с двумя базами данных (postgres и cassandra). Я также использую hikari.

Моя проблема в том, что Мне нужно настроить два пула подключений независимо . Если я изменю hikari MaximumPoolSize, это изменение повлияет на оба соединения с базой данных. Я хочу иметь 10 подключений к пулу для postgres и 200 для cassandra.

В конфигурации источника данных cassandra у меня есть это:

public class CassandraDataSourceConfig extends AbstractCassandraConfiguration {

    private final Environment env;

    public CassandraDataSourceConfig(Environment env) {
        this.env = env;
    }

    @Override
    protected String getKeyspaceName() {
        return env.getProperty("spring.cassandra-datasource.keyspace");
    }

    @Override
    @Bean
    public CassandraClusterFactoryBean cluster() {
        PoolingOptions poolingOptions = new PoolingOptions();
        poolingOptions
            .setConnectionsPerHost(HostDistance.LOCAL,  200, 250)
            .setConnectionsPerHost(HostDistance.REMOTE, 200, 250);

        final CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
        cluster.setContactPoints(env.getProperty("spring.cassandra-datasource.contact-points"));
        cluster.setPort(Integer.parseInt(env.getProperty("spring.cassandra-datasource.port")));
        cluster.setUsername(env.getProperty("spring.cassandra-datasource.username"));
        cluster.setPassword(env.getProperty("spring.cassandra-datasource.password"));
        cluster.setPoolingOptions(poolingOptions);
        cluster.setJmxReportingEnabled(false);        

        return cluster;
    }

}

Работает, получает 200 подключений cassandra для меня, но, если я поставлю:

spring.datasource.hikari.maximumPoolSize: 10

Эта конфигурация влияет на мой пул кассандры, который должен иметь 200 доступных соединений.

Любое предложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...