我正在尝试处理应用程序中的一些couchbase异常。upstart方法可以抛出TemporaryFailureException,指示服务器端出现临时故障。是否存在文档的CAS值已更新的情况?如果出现此异常,我将使用指数后退重试固定次数。如果更新了CAS值,那么在下次重试时,我需要确保下次传递更新的CAS值时,否则我将得到CASMismatchException。
那么,是否可以保证在服务器端出现故障时不会更新CAS值?
neneneba CAS表示文档的"版本",当您需要乐观锁定时使用它(两个应用程序试图同时更改同一文档(。
当服务器出现更复杂的问题(磁盘故障、内存不足等(时,会引发TemporaryFailureException。如果集群配置正确,服务器将自动进行故障转移,另一个节点将取代它。因此,使用某种回退机制重试操作以等待服务器升级是一种有效的策略。
值得强调的是,如果同时需要阅读文档,可以调用方法"readFromReplica"。Couchbase SDK内部也有一个断路器。