SpringCloudは、フォールバックの最初の経験を装います

SpringCloudは、フォールバックの最初の経験を装います

マイクロSpringCloudサービスフレームワークでは、ふりは非常に重要と共通の構成要素の一つです。装うは、私たちはHTTP APIを呼び出すために、より便利にすることができ、宣言、テンプレートベースのHTTPクライアントです。本論文では、定着メカニズムフォールバック装うための簡単な紹介。フォールバックは、主に依存サービスが利用できない解決したり、サービスに障害が発生したか、タイムアウトが、デフォルトの戻り値を使用して呼び出すために使用されています。

装うの導入1。

  • POMの依存関係

    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-feign</artifactId>
                <version>1.4.7.RELEASE</version>
    </dependency>
  • アプリケーションノートの増加起動クラス

    @SpringBootApplication(scanBasePackages = {"com.xiaoqiang.feigncomsumer"})
    @EnableFeignClients(basePackages = {"com.xiaoqiang.feigncomsumer"})
    @EnableEurekaClient
    public class FeigncomsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(FeigncomsumerApplication.class, args);
        }
    
    }
  • インタフェースクラス構成

    @FeignClient(name = "${feign.provider}",path = "/feignprovider")
    @Component
    public interface StudentClient {
    
         @GetMapping("/stud/getStudentList")
         List<Student> getStudentList(@RequestParam(required = false,name = "name") String name);
    }

2.Fallback設定

  • フォールバッククラス

ここで注意すべきことの一つは、値ではつまり、URLを@RequestMapping、URL内のインターフェイスクラスを好きではないということです。URLは、次の2つの方法にマッピングすることができませんので。

@Component
@RequestMapping("fallback/")
public class  FallBackStudentClient implements StudentOtherClient {

    @Override
    public Student getStudent(String name) {
        Student student = new Student();
        student.setAge(0);
        student.setName("fall back test");
        return student;
    }
}
  • インターフェイスクラス

    フォールバッククラス@FeignClient注釈パラメータで指定された、と@Componentコメントが必要です。

@Component
@FeignClient(name = "${feign.provider}",path = "/feignprovider"
        ,fallback = FallBackStudentClient.class)
public interface StudentOtherClient {
    @GetMapping("/stud/getStudent")
    Student getStudent(@RequestParam(required = false, name = "name") String name);
}
  • オープンHystrixヒューズ機能

    でHystrix設定bootstrap.ymlを増やします。どのHystrixデフォルトのタイムアウト時間は1秒です。

    feign:
      name: MFRAMEWORK-PROVIDER
      provider: feignprovider
    ##开启Hystrix断路器
      hystrix:
        enabled: true

これは、フォールバックのすべてFigen初体験です。

demo地址:https://github.com/lanxuan826/sample-library/tree/master/feigndemo-fallback

PS:テストプロセスで問題が発生し、示されたエラー内容。

理由:@FeignClient(「同じサービス名」)複数のインターフェイス上では無効になっているオーバーライド、文句を言います。

ソリューション:

application.ymlのconfigureで:

spring
    main:  allow-bean-definition-overriding: true

おすすめ

転載: www.cnblogs.com/lanxuan826/p/11488555.html