Я использую весеннее приложение для загрузки. Я выбираю данные из базы данных JDBC DataSource и репозиториев. Некоторые запросы JDBS и некоторые запросы по репозиториям. Моя БД настраивает RAC и имеет 2 экземпляра. Я подключаюсь к db на 129.0.0.2
, но этот URL-адрес сбалансирован между 129.0.0.3(1 instance) and 129.0.0.4(2instance)
. Все запросы выполняются с 129.0.0.2
, но некоторые запросы, которые мне нужно выполнить только на одном экземпляре. Я создал 3 источника данных:Как настроить репозитории JPA для разных источников данных в SpringBoot?
@Bean(name = "primary")
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "second")
@ConfigurationProperties(prefix = "spring.secondDatasource")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "three")
@ConfigurationProperties(prefix = "spring.threeDatasource")
public DataSource threeDataSource() {
return DataSourceBuilder.create().build();
}
И сконфигурируйте их в application.properties. Тогда я могу написать
@Qualifier("primary")DataSource dataSource
или
@Qualifier("second")DataSource dataSource
Но что DataSource будет использовать, когда я исполняю репозиториев запрос?
Можете ли вы предоставить ссылку на официальную документацию или статью, где рекомендовано это решение? или это само решение? – user5620472
Я считаю, что это должно работать из того, что я знаю о Spring Data JPA. Не пробовал сам. Поскольку разговор с двумя базами данных из одного приложения Spring Boot является своего рода запахом архитектуры, я сомневаюсь, что вы найдете много ресурсов об этом. – luboskrnac