小编Dim*_*tri的帖子

Spring Boot 和 Spring Data with Cassandra:在失败的数据库连接上继续

我将 Spring Boot 和 Spring Data 与 Cassandra 一起使用。在应用程序启动时,spring 建立到数据库的连接以设置模式并初始化 spring 数据存储库。如果数据库不可用,应用程序将不会启动。

我希望应用程序只记录一个错误并启动。当然,我不能再使用存储库,但其他独立于数据库的服务(其余控制器等)应该可以工作。也很高兴在执行器健康检查中看到 cassandra 已关闭。

对于 JDBC,有一个spring.datasource.continue-on-error属性。我找不到与 Cassandra 类似的东西。

我还尝试创建自定义 cassandra 配置并尝试在 CqlSession 创建时捕获异常,但我无法实现所需的行为。

编辑:正如@a​​dutra 所建议的,我尝试设置advanced.reconnect-on-init,应用程序尝试建立连接,但应用程序未完全初始化(例如无法访问 REST 控制器)

@Configuration
public class CustomCassandraConfiguration extends CassandraAutoConfiguration {
    @Bean
    public DriverConfigLoaderBuilderCustomizer driverConfigLoaderBuilderCustomizer() {
        return builder -> builder.withBoolean(DefaultDriverOption.RECONNECT_ON_INIT, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

EDIT2:我现在有工作示例(应用程序启动,cassandra 的自定义健康检查),但如果感觉很丑陋:

自定义Cassandra自动配置

@Configuration
public class CustomCassandraConfiguration extends CassandraAutoConfiguration {
    @Bean
    public DriverConfigLoaderBuilderCustomizer driverConfigLoaderBuilderCustomizer() {
        return builder -> builder.withBoolean(DefaultDriverOption.RECONNECT_ON_INIT, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

自定义CassandraDataAutoConfiguration

@Configuration
public class CustomCassandraAutoConfiguration extends CassandraAutoConfiguration …
Run Code Online (Sandbox Code Playgroud)

spring cassandra spring-data spring-boot spring-data-cassandra

1
推荐指数
1
解决办法
1048
查看次数