Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我需要@Retry并使用spring初始化器时,我是否需要hystrix依赖项?_Spring_Spring Boot_Hystrix_Spring Retry_Spring Initializr - Fatal编程技术网

当我需要@Retry并使用spring初始化器时,我是否需要hystrix依赖项?

当我需要@Retry并使用spring初始化器时,我是否需要hystrix依赖项?,spring,spring-boot,hystrix,spring-retry,spring-initializr,Spring,Spring Boot,Hystrix,Spring Retry,Spring Initializr,我将在我的Spring Boot MVC应用程序中使用@Retry,同时通过@Version以乐观锁定方式将数据存储到DB 当OptimisticLockException发生时,我将重试多次。然后在100次之后倒下(按照我的逻辑,这是检查出错情况的触发器) 那么这是上面描述的断路器模式吗?在Spring Initializer中创建项目时,是否应该使用Hystrix依赖项?或者我可以在gradle/maven中添加spring retry依赖项并使用@retry? 我很困惑,请帮助当数据库调用

我将在我的Spring Boot MVC应用程序中使用
@Retry
,同时通过
@Version
以乐观锁定方式将数据存储到DB

当OptimisticLockException发生时,我将重试多次。然后在100次之后倒下(按照我的逻辑,这是检查出错情况的触发器)

那么这是上面描述的断路器模式吗?在Spring Initializer中创建项目时,是否应该使用Hystrix依赖项?或者我可以在gradle/maven中添加
spring retry
依赖项并使用
@retry

我很困惑,请帮助

当数据库调用失败时,您不需要Hystrix来重试数据库调用。您可以使用声明性重试(例如和其他注释)或from

就依赖关系而言,是的-只需添加SpringRetry,如果使用声明性retry,则在AOP类上还有一个额外的选项


(以上所有链接都指向同一个GitHub Spring项目)

谢谢,请您澄清为什么Hystrix是一个特例?我不认为Hystrix是一个特例。我给你们指出SpringRetry的一个原因是Hystrix在。我已经成功地使用SpringRetry来重试对MySQL的DB调用,这些调用由于下一个密钥锁引起的死锁而失败(MySQL的“东西”)。但如果你决定使用Hystrix,你也可能会成功。我想指出一点-
@Retry
来自Hystrix,
@Retryable
来自spring Retry。我想我有点被搞糊涂了-
@Retry
来自resilience4j?我不知道
@Retry
我只是想了解一下,如果Hystrix像往常一样执行
@Retry
为什么在spring Initializer中会特别提到它?如果用例是重试由于乐观锁定检测到基础数据中的更改而失败的数据库更新,我会说它不是。因此,只需在gradle/maven中将spring retry添加为依赖项,并使用
@Retryable