Spring Boot 2 с пулом pgBouncer - PullRequest
       10

Spring Boot 2 с пулом pgBouncer

0 голосов
/ 02 апреля 2020

У меня есть PostgreSQL 11 сервер с настроенным и включенным пулом pgBouncer.

Я бы хотел использовать механизм его объединения, а не пул Hikari и Tomcat по умолчанию, который поставляется с Spring Boot spring-boot-starter-data-jpa , Я отключил HikariCP и tomcat-jdbc из проекта, однако, я не уверен, что мне нужно настроить дальше, чтобы успешно запустить приложение Spring.

Наверное, мой вопрос Как настроить приложение Spring, чтобы оно не использовало какой-либо механизм объединения для связи с БД, поскольку оно будет обрабатываться pgBouncer на стороне БД?

Я рассмотрел множество вопросов. и ответы на несколько похожие вопросы, которые привели меня к отключению HikariCP для начала. Однако мне не удалось найти краткое руководство / пример того, как я мог бы сделать эту работу в моем случае.

Любая помощь будет очень признательна.

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Вы можете отключить пул соединений Hikari, установив MaximumPoolSize как 1

Это свойство контролирует максимальный размер, который разрешен для пула, включая как бездействующий, так и используемый. соединения. В основном это значение будет определять максимальное количество фактических подключений к базе данных базы данных

 spring.datasource.hikari.maximumPoolSize=1
0 голосов
/ 05 апреля 2020

Оказывается, мне нужно было определить DataSource, поэтому я создал класс конфигурации следующим образом:

@Configuration
@ConfigurationProperties("spring.datasource")
public class DatabaseConfig {

    @Value("${spring.datasource.url}")
    private String uri;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Bean
    public DataSource dataSource() throws SQLException {
        SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
        dataSource.setDriver(DriverManager.getDriver(uri));
        dataSource.setUrl(uri);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
...