本文共 955 字,大约阅读时间需要 3 分钟。
在分布式系统中,当一个服务无法响应时,直接返回错误响应而不是长时间等待,以防止故障在系统间蔓延。以电商平台为例,订单服务和减库存服务互相调用,当减库存服务出现延迟或不可用时,订单服务不会一直等待,避免影响整体系统的稳定性。
在入口类使用@enableCircuitBreaker注解开启断路器功能,可以通过@SpringCloudApplication注解替代主类注解。使用@HystrixCommand注解指定回调方法,例如:
@HystrixCommand(fallbackMethod = "error", commandProperties = { @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1500")}) fallbackMethod指定服务不可用时回调的方法。
熔断后,服务降级生效,客户端返回默认值。例如,服务提供者不可用时,客户端调用本地回调方法返回默认值。
在调用服务提供者时,抛出的异常会触发服务降级机制,交给指定的回调方法处理,如:
public String error(Throwable throwable) { System.out.println(throwable.getMessage()); return "error";} Feign整合Ribbon和Hystrix,大大简化了服务调用流程。配置@EnableFeignClients开启支持,使用@FeignClient注解指定服务名称并绑定接口:
@FeignClient("01-springcloud-service-provider")public interface HelloService { @RequestMapping("/service/hello") public String hello();} 通过spring.application.name属性配置服务名称,将Feign与SpringMVC整合,实现高效服务调调用。
转载地址:http://knunz.baihongyu.com/