首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Resilience4J将CircuitBreaker解析为类型

无法使用Resilience4J将CircuitBreaker解析为类型
EN

Stack Overflow用户
提问于 2021-09-08 15:17:57
回答 1查看 281关注 0票数 0

我正在尝试在我的Spring Boot中构建一个简单的CircuitBreaker (它使用Swagger)。

我的想法是,第一个应用程序调用另一个可以打开或关闭的应用程序,我想实现一个CircuitBreaker,如果第二个应用程序关闭,它会给出一个错误消息。

主要的问题是,我尝试使用@电路断路器注解,说它不能被解析为一个类型。

代码语言:javascript
复制
import...
import io.github.resilience4j.*;

public class AccountServiceImpl implements AccountService {

 Autowired private RestTemplate restTemplate;

  @CircuitBreaker( name = "test", fallbackMethod = "fallback")   
  public void createAccount(ConsentRequestDTO consent) {
    //code which makes the post
    //
  }

  public String fallback() {
    return "fallback-exceptiont";
  }
}

我的pom.xml是

代码语言:javascript
复制
<dependency>
    <groupId>io.github.resilience4j</groupId>
    <artifactId>resilience4j-spring-boot2</artifactId>
    <version>1.7.0</version>
  </dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
    <version>2.0.1</version>
</dependency>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-aop</artifactId>
  <version>2.3.1.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/io.github.resilience4j/resilience4j-retry -->
    <dependency>
      <groupId>io.github.resilience4j</groupId>
      <artifactId>resilience4j-circuitbreaker</artifactId>
      <version>1.7.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.github.resilience4j/resilience4j-core -->
    <dependency>
      <groupId>io.github.resilience4j</groupId>
      <artifactId>resilience4j-core</artifactId>
      <version>1.7.0</version>
    </dependency>

    <dependency>
      <groupId>io.github.resilience4j</groupId>
      <artifactId>resilience4j-all</artifactId>
      <version>1.7.0</version>
    </dependency>

我不知道如何解决这个错误。也许是依赖关系吧?我试着不使用注释,使用

代码语言:javascript
复制
CircuitBreakerConfig config = CircuitBreakerConfig.ofDefaults()

但它给出了相同的错误,“无法解决”。

EN

回答 1

Stack Overflow用户

发布于 2021-09-19 20:52:34

基于您不需要的demo circuit breaker

代码语言:javascript
复制
<dependency>
    <groupId>io.github.resilience4j</groupId>
    <artifactId>resilience4j-spring-boot2</artifactId>
    <version>1.7.0</version>
  </dependency>

因为你已经有spring-cloud-starter-circuitbreaker-reactor-resilience4j了。使用这些导入可能会解决您的问题

代码语言:javascript
复制
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>${jersey.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>${jersey.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.ext.rx</groupId>
            <artifactId>jersey-rx-client-rxjava</artifactId>
            <version>${jersey.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.ext.rx</groupId>
            <artifactId>jersey-rx-client-rxjava2</artifactId>
            <version>${jersey.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>${jersey.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <dependency>
            <groupId>io.projectreactor.addons</groupId>
            <artifactId>reactor-adapter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69105678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档