我是Resilience4J的新手,并试图与Spring Boot集成。
我的应用程序有几个远程系统调用。我希望所有远程呼叫都有相同的断路器配置。
@Bean
public CircuitBreakerConfig circuitBreakerConfig() {
return CircuitBreakerConfig.custom().slidingWindowType(SlidingWindowType.COUNT_BASED).slidingWindowSize(6)
.failureRateThreshold(50).waitDurationInOpenState(Duration.ofSeconds(10))
.permittedNumberOfCallsInHalfOpenState(3).recordExceptions(HttpClientErrorException.class, HttpServerErrorException.class,TimeoutException.class,SdkClientException.class,AmazonServiceException.class,SQLException.class,JDBCException.class, DataAccessException.class).build();
}
@Bean
public CircuitBreaker circuitBreaker(CircuitBreakerConfig circuitBreakerConfig) {
return CircuitBreaker.of("circuit-config", circuitBreakerConfig);
}
@Bean
public RetryConfig retryConfig() {
return RetryConfig.custom().maxAttempts(3).waitDuration(Duration.ofMillis(1000))
.retryExceptions(HttpClientErrorException.class, HttpServerErrorException.class,TimeoutException.class,SdkClientException.class,AmazonServiceException.class,SQLException.class,JDBCException.class, DataAccessException.class).build();
}
@Bean
public Retry retry() {
return Retry.of("retry-config", retryConfig());
}
Decorators.ofRunnable(systemA::callA)
.withCircuitBreaker(circuitBreaker)
.withRetry(retry)
.decorate()
.run();
Decorators.ofRunnable(systemB::callB)
.withCircuitBreaker(circuitBreaker)
.withRetry(retry)
.decorate()
.run();
您应该使用Spring Boot2启动器和外部配置。然后将CircuitBreakerRegistry注入代码或使用注释。
在Java行话中,我有一个,一个(其中实现了所有)和一系列其他类,它们都实现了。 过渡到生锈,我有两个特点 其中是的子特征: 接下来,我有一堆结构,所有这些结构都实现了RT: 到目前为止还不错。 现在我希望所有这些结构都可以相互比较,因为它们都实现了。 Java我会将更改为 并为和添加默认实现。 在《铁锈》中,我不知道是否或如何才能做到这一点。 我可以说,但这只会使一个实现与它本身具有可比性(,而
我有许多服务,每一个服务都调用许多不同的远程endpoint,使用一个基本服务,即service1->base_service->endpoint1,2,5,service2->base_service->endpoint2,3,5等等。基本服务使用Spring WebClient进行http调用。
我有一个特点,它是由同一个结构以不同的方式实现的。为了实现这一点,我有不同的结构,它们有不同的实现。对于抽象,我将这些结构称为A-Z: 有没有其他方法来实现这一点,以便结构的每个实例都有一个不同的trait实现,或者创建一个新结构是最好的方法? 我不熟悉编译语言。我所做的大部分工作都是使用Python和TypeScript。
让Person是一个具有属性name、age和idNumber的类。我希望有一个“人”的集合,我希望能够以最有效的方式执行以下操作: 通过他们的ID号检索他们。 获取年龄的人的列表 我的想法是同时维护一个使用id作为键的Hashmap和两个使用age和name作为每个树映射键的树映射。 这是最好的方式吗
我试图比较IntelliJ中两个不同项目的项目结构。我可以在两个不同的IntelliJ窗口中正确打开两个项目。然后,我在一个IntelliJ窗口中打开项目结构,该窗口是一个模态对话框。不幸的是,模态对话框阻止我访问在difference IntelliJ IDE中打开的第二个项目。 我有没有办法把intelliJ的两个实例分离出来?
如何从响应Swift中的语句的嵌套结构中断开外部循环? 例如: 只会让我离开,在Swift中,它必须被用作空的情况是不允许的。我如何从中完全退出循环?