【发布时间】:2018-04-08 10:47:29
【问题描述】:
我目前正在实现一个 Spring Boot 微服务,它将数据持久化到单个 Cassandra 数据库节点。如果与数据库的连接丢失,我需要能够设置重试次数以及微服务配置文件中重试之间的毫秒数。我正在使用“spring-boot 1.5.6 版”和 spring-data-cassandra 1.5.6 版“。我能够通过创建CassandraCqlClusterFactoryBean 类型的集群并在其中传递自定义重新连接策略来设置重试之间的毫秒数cluster.setReconnectionPolicy() 方法。但我无法使用自定义重试策略设置重试次数。如果理解正确,重试策略仅处理进行查询的情况,但在我的情况下,我需要设置次数无论是否进行查询,在所有时间重试。经过几天的研究,我能够产生一个丑陋的 hack,它基本上使用自定义 ReconnectionSchedule,并在满足某些条件后停止 Spring Boot 应用程序nextDelayMs() 方法。不过我继续在调试模式下查看源代码,发现ControlConnection 抛出了NoHostAvailableException 异常。所以我查看了有关Control connection 的datastax 官方文档,我发现
即将推出……
那么有人可以告诉我如何正确地实现一种方法来阻止我的 cassandra 驱动程序在预定义的重试次数后尝试重新连接到节点。
提前致谢。
【问题讨论】:
标签: spring spring-boot cassandra spring-data-cassandra