第一步,导入pom
<!--fegin启用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--hystrix启用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
第二步,yml配置增加如下
# 熔断器
feign:
hystrix:
enabled: true
#指定熔断超时时间 毫秒
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 21000
第三步,启动类增加@EnableCircuitBreaker,@EnableFeignClients
@SpringBootApplication
@EnableCircuitBreaker
@EnableFeignClients
public class Application {
private static final Logger logger = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
logger.info("-----------------------");
logger.info("application is success!");
logger.info("-----------------------");
}
}
第四步,增加service 接口与实现类
import java.util.List;
import java.util.Map;
/**
* @author wfeil211@foxmail.com
* @Date 2019/7/18
*/
@FeignClient(value = "service", fallback = ServiceFail.class)
public interface Service {
/**
* 获取
*
* @param cardNo
* @return
*/
@RequestMapping(value = "url/getBalance", method = RequestMethod.GET)
JsonObject<String> getBalance(@RequestParam("cardNo") String cardNo);
}
import java.util.List;
import java.util.Map;
/**
* @author wfeil211@foxmail.com
* @version 1.0 2018-07-10 10:24:05
*/
@Component
public class ServiceFail implements Service {
/**
* 获取
*
* @param cardNo
* @return
*/
@Override
public JsonObject<String> getBalance(String cardNo) {
return null;
}
}
注意:此方式适用于直接调用其他服务controller层接口,属于主动,另一张rpc方式下次出