Gateway 网关 之 容错
过滤器:HystrixGatewayFilterFactory
Spring Cloud Gateway 可以利用 Hystrix 实现服务降级等功能。
当Gateway进行路由转发时,如果发现下游服务连接超时允许进行服务降级。
实现原理:当连接超时时,使用Gateway自己的一个降级接口返回托底数据,保证程序继续运行。
添加 Hystrix 依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
配置:
配置属性参考:HystrixGatewayFilterFactory 及 其内部类 Config,Hystrix 默认超时时间 1 秒
配置文件:
spring: cloud: gateway: routes: - id: member-demo uri: lb://my-member predcates: - name: Path args: - patterns=/member/**,/my-member/** filters: - name: Hystrix args: # 其中args.name 取值是任意的,最终会被设置为Hystrix的commandKey。但是不能省略, # 省略会导致org.springframework.cloud.gateway.filter.factory.HystrixGatewayFilterFactory.Config的Setter为null, #因为没有设置Hystrix的commandKey等内容时就没有执行Setter的构造方法。 name: fallbackPage # 远程服务错误时, gateway 工程中哪个控制器逻辑返回降级结果,Controller 中的地址 fallbackUri: forward:/downgrade/down
编写降级返回页面请求:
@RestController @RequestMapping(value = "/downgrade") public class DowngradeController { @GetMapping(value = "/down", produces = "text/html;charset=UTF-8") public String down() { String downResult = "<html>" + " <body>" + "Gateway 返回的结果,服务器忙,请稍后重试" + " </body>" + "</html>"; return downResult; } }
>>>>>>>>>>>>>> 下一篇: https://www.cnblogs.com/chxlay/p/15150562.html <<<<<<<<<<<<<<<<<<<<<
本文来自博客园,作者:Vermeer,转载请注明原文链接:https://www.cnblogs.com/chxlay/p/15150554.html