我目前正在实现一个spring boot微服务,它将数据持久保存到单个Cassandra数据库节点。如果与数据库的连接丢失,我需要能够设置重试次数,以及微服务配置文件中重试之间的毫秒数。我正在使用" spring-boot版本1.5.6"和spring-data-cassandra版本1.5.6"。通过创建类型CassandraCqlClusterFactoryBean
的集群并在cluster.setReconnectionPolicy()
方法中传递自定义重新连接策略,我能够设置重试之间的毫秒数。但我无法使用自定义重试策略设置重试次数。如果理解正确,则重试策略仅处理进行查询的情况,但在我的情况下,无论是否进行查询,我都需要始终设置重试次数。经过几天的研究,我能够生成一个丑陋的黑客,它基本上使用自定义ReconnectionSchedule
并在nextDelayMs()
方法满足某些条件后停止弹簧启动应用程序。不过我继续在调试模式下查看源代码,我发现NoHostAvailableException
抛出了ControlConnection
异常。所以我检查了关于Control connection的datastax官方文档,我找到了
即将推出......
有人可以告诉我如何正确实现一种方法来阻止我的cassandra驱动程序在预定义的重试次数后尝试重新连接到节点。
提前致谢。