源码:https://gitee.com/qing11/learning-demo.git
1、创建gateway服务
2、引入pom.xml
<!--nacos服务注册发现依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--网关gateway依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
3、配置文件 application.properties
server.port=10010
#服务名称
spring.application.name=gateway
#nacos配置
spring.cloud.nacos.server-addr=127.0.0.1:8848
########################## gateway网关配置 ##########################
##########################配置订单服务
# 路由标示,必须唯一
spring.cloud.gateway.routes[0].id=order-service
#spring.cloud.gateway.routes[0].uri=http:127.0.0.1:8081 # 路由的目标地址,http就是固定地址,不推荐
# 路由的目标地址 lb:负载均衡,后面跟着的是需要通过网关的服务名称
spring.cloud.gateway.routes[0].uri=lb://orderservice
#路由断言,就是判断请求是否符合路由规则的条件,如果符合就可以通过网关访问
spring.cloud.gateway.routes[0].predicates[0]=Path=/order/**
##########################配置用户服务
spring.cloud.gateway.routes[1].id=user-service
spring.cloud.gateway.routes[1].uri=lb://userservice
spring.cloud.gateway.routes[1].predicates[0]=Path=/user/**
网关路由可以配置的内容包括:
- 路由id:路由唯一标示
- uri:路由目的地,支持lb和http两种
- predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地
- filters:路由过滤器,处理请求或响应
4、使用
启动nacas服务端,启动所有的订单服务、用户服务、网关服务,访问:localhost:10010/order/101
就可以看见效果了。