引入依赖包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
定义服务熔断,实现服务接口
@Named("userWebServiceFallback")
public class UserWebServiceFallback implements UserWebServiceApi {
private static final Logger log = LoggerFactory.getLogger(UserWebServiceFallback.class);
@Override
public ResultVO<UserInfoEntity> findByAccount(String account) {
log.error("findByAccount service api hystrix.");
ResultVO<UserInfoEntity> result = ResultVoFactory.createErrorResult();
result.setDetail("find user info by findByAccount hystrix fallback.");
return result;
}
}
@FeignClient(value = "user-web", fallback = UserWebServiceFallback.class)
public interface UserWebServiceApi {
/**
* <p>查找用户信息</p>
*
* @param account
* @return
*/
@RequestMapping(value = "/userweb/findByAccount", produces = "application/json")
public ResultVO<UserInfo> findByAccount(@RequestParam("account") String account);
}
启动熔断
启动类增加启用注解:@EnableCircuitBreaker
application.yaml配置文件增加启用配置:
feign:
hystrix:
enabled: true