content: package com.george.springcloud.controller;
  
  import com.george.springcloud.service.PaymentService;
  import lombok.extern.slf4j.Slf4j;
  import org.springframework.beans.factory.annotation.Value;
  import org.springframework.web.bind.annotation.GetMapping;
  import org.springframework.web.bind.annotation.PathVariable;
  import org.springframework.web.bind.annotation.RestController;
  
  import javax.annotation.Resource;
  
  /**
   * @author Yang Hao
   * @description
   * @date 2020-09-17 09:11
   */
  @RestController
  @Slf4j
  public class PaymentHystrixController {
      @Resource
      private PaymentService paymentService;
  
      @Value("${server.port}")
      private String serverPort;
  
      @GetMapping("/payment/hystrix/ok/{id}")
      public String paymentInfo_OK(@PathVariable("id") Integer id) {
          String result = paymentService.paymentInfo_OK(id);
          log.info("------------result: " + result);
          return result;
      }
  
      @GetMapping("/payment/hystrix/timeout/{id}")
      public String paymentInfo_TimeOut(@PathVariable("id") Integer id) {
          String result = paymentService.paymentInfo_TimeOut(id);
          log.info("------------result: " + result);
          return result;
      }
  
      /**
       * 服务熔断
       *
       * @param id
       * @return
       */
      @GetMapping("/payment/circuit/{id}")
      public String paymentCircuitBreaker(@PathVariable("id") Integer id) {
          String result = paymentService.paymentCircuitBreaker(id);
          log.info("------------result: " + result);
          return result;
      }
  }
  