我目前正在实现一个spring-boot微服务,它将数据持久化到一个Cassandra数据库节点。如果与数据库的连接丢失,我需要能够在微服务配置文件中设置重试次数和重试之间的毫秒数。我使用的是"spring-boot版本1.5.6"和spring-data cassandra版本1.5.6".我可以通过创建类型为CassandraCqlClusterFactoryBean
的群集并在cluster.setReconnectionPolicy()
方法中传递自定义重新连接策略来设置重试间隔的毫秒数。但我无法使用自定义重试策略设置重试次数。如果理解正确,重试策略仅处理进行查询的情况,但在我的情况下,我需要始终设置重试次数er是否进行了查询。经过几天的研究,我能够产生一个丑陋的破解,它基本上使用自定义的ReconnectionSchedule
,并在nextDelayMs()
方法中满足某些条件后停止春季启动应用程序。尽管如此,我还是在调试模式下继续查看源代码,发现ControlConnection
抛出了一个NoHostAvailableException
异常。所以我查看了有关Control连接的数据税官方文件,发现了
即将推出…
因此,请有人向我展示如何正确实现一种方法,停止我的cassandra驱动程序在预定义的重试次数后尝试重新连接到节点。
提前谢谢。
请参见9.3.1。
也许你可以尝试每x秒打开一个会话,直到超时或成功创建会话。