Как реализовать автоматический выключатель с помощью Resilience4j в проекте Spring Boot с несколькими базами данныхJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как реализовать автоматический выключатель с помощью Resilience4j в проекте Spring Boot с несколькими базами данных

Сообщение Anonymous »

Я столкнулся с проблемой в моем проекте Spring Boot, в котором задействованы три разные базы данных. Я настроил источники данных и конфигурации JPA для сопоставления репозиториев с соответствующими базами данных. Я прилагаю пример кода моего класса. Моя цель — реализовать автоматический выключатель с помощью Resilience4j для обработки сбоев базы данных. В частности, мне нужно, чтобы приложение продолжало работать в случае сбоя какой-либо из баз данных. Кроме того, одна из баз данных в настоящее время неактивна и находится на техническом обслуживании. Однако его недоступность не позволяет мне запустить проект из-за ошибок подключения. Можно ли настроить автоматический выключатель так, чтобы он управлял ошибками подключения при запуске приложения и разрешал запуск проекта?

Код: Выделить всё

@Configuration("colDataSourcesConfig")
public class DataSourcesConfig {

// obtiene las propiedades de la base de datos
@Bean("oracleColProperties")
@ConfigurationProperties(prefix = "spring.datasource.oraclecol")
public DataSourceProperties getOracleColProperties() {
return new DataSourceProperties();
}

// obtiene el origen de datos de la base de datos
@Bean
@Qualifier("oracleColDataSource")
public DataSource getOracleColoDataSource(){
return getOracleColProperties().initializeDataSourceBuilder().build();
}
// crea un cliente jdbc para la base de datos usando el origen de datos
@Bean
public JdbcClient jdbcClientCol (@Qualifier("oracleColDataSource") DataSource dataSource) {
return JdbcClient.create(dataSource);
}

Код: Выделить всё

@Configuration
@EnableJpaRepositories(
basePackages = "com.femsa.oxxo.repository.utileriarepository.col",
entityManagerFactoryRef = "oracleColEntityManagerFactory",
transactionManagerRef = "oracleColTransactionManager"
)

@EnableTransactionManagement
public class OracleColJpaConfig {

@Bean("oracleColEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean oracleColEntityManagerFactory(@Qualifier("oracleColDataSource" ) DataSource oracleColDataSource) {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(oracleColDataSource);
em.setPackagesToScan("com.femsa.oxxo.model");
em.setPersistenceUnitName("oracleCol");
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());

Map additionalProperties = new HashMap();
//additionalProperties.put("hibernate.dialect","org.hibernate.dialect.H2Dialect");
//additionalProperties.put("hibernate.dialect","org.hibernate.dialect.Oracle10gDialect");
em.setJpaPropertyMap(additionalProperties);
return em;
}

@Bean("oracleColTransactionManager")
public JpaTransactionManager getOracleColTransactionManager(@Qualifier("oracleColEntityManagerFactory") LocalContainerEntityManagerFactoryBean oracleColEntityManagerFactory) {
return new JpaTransactionManager(Objects.requireNonNull(oracleColEntityManagerFactory.getObject()));
}

}
Что я пробовал:
Я исследовал различные конфигурации и подходы в Spring Boot, но пока не нашел решения. Я рассматривал возможность реализации функции автоматического выключателя Resilience4j, но не уверен в ее интеграции с несколькими источниками данных в среде Spring Boot. Будем очень признательны за любые рекомендации или примеры того, как этого добиться.

Подробнее здесь: https://stackoverflow.com/questions/783 ... oject-with
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»