您的位置:首页 > 编程语言 > Java开发

Spring Cloud Gateway 使用

2019-10-02 08:13 302 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/ityard/article/details/101898994

简介

Spring Cloud Gateway 是 Spring Cloud 官方推出的网关框架,网关作为流量入口,在微服务系统中有着十分重要的作用,常用功能包括:鉴权、路由转发、熔断、限流等。

Spring Cloud Gateway 是通过 Spring WebFlux 的 HandlerMapping 做为底层支持来匹配到转发路由,使用时不要引入 SpringMVC,否则初始化时会出错;Spring Cloud Gateway 内置了很多 Predicates工厂,这些 Predicates 工厂通过不同的 HTTP 请求参数来匹配,多个 Predicates 工厂可以组合使用。

快速上手

1)添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

2)配置(结合Eureka使用)

server:
port: 8066
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true  #设置serviceId小写,默认大写
routes:
- id: user-server
uri: lb://user-server   #lb表示从注册中心获取服务
predicates:
- Path=/userapi/**         # 如果请求地址满足/userapi/**,则转发到user-server服务
filters:
- StripPrefix=1           # 去除原请求地址中的userapi
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8088/eureka/

3)集成Hystrix

添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

添加配置

filters:
- name: Hystrix
args:
name : default
fallbackUri: 'forward:/dfallback'
hystrix:
command:
default:
execution:
isolation:
thre
3ff7
ad:
timeoutInMilliseconds: 6000

4)Java 端

@RestController
public class DHystrixController {
@RequestMapping("/dfallback")
public Map<String,String> dfallback(){
System.out.println("降级了。。。");
Map<String,String> map = new HashMap<String,String>();
map.put("rCode","-1");
map.put("rMsg","出错了");
return map;
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: