spring cloud之网关熔断、降级

业务场景

在传统的项目中,当访问一个路径出现不可访问比如404,浏览器不同在加载甚至在10几秒后才会反馈出404,这明显对用户不友好,如果用户在加载404等还在不停的刷新当前网页将会导致后台不同的请求。这就需要我们做熔断降级

在当前的网关服务中,熔断降级主要是使用hystrix来实现服务降级,当访问的内部url超过限定的时间救出自动出现

代码层面

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true #表示注册中心生效,我们可以通过注册中心的服务名进行路由转发
          lower-case-service-id: true
      default-filters: #代表默认的过滤器,这是一个全局的过滤器,不属于任何一个route
        - name: Hystrix
          args:
            name: default
            fallbackUri: 'forward:/bad' #熔断之后服务降级
#熔断配置
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 10000 #熔断超时时间
@RestController
public class FusingController {

	/**
	 * 系统请求超时后触发熔断机制
	 * 封装信息告知前端请求超时
	 */
	@RequestMapping("/fusing")
	public String bad() {
		return "请求超时估计是系统崩了(  ー̀ωー́ )⊃⌒,快去找程序员";
	}
}

完成以上代码配置就可以实现网关熔断之后服务降级这个跟feign有点像

你可能感兴趣的:(知识总结,网关,spring)