目录
基础版
创建子工程
工程名称api-gateway
pom.xml配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
application.yml配置
server:
port: 9000
spring:
application:
name: api-gateway
cloud:
gateway:
routes:
- id: project-service #路由唯一标识
uri: http://127.0.0.1:9005 #转发地址
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发,前端访问路径统一加上前缀 project-servic
- Path=/project-servic/**
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀,转发给后续的路径
- id: user-service #路由唯一标识
uri: http://127.0.0.1:9003 #转发地址
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发,前端访问路径统一加上前缀 user-service
- Path=/user-service/**
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀,转发给后续的路径
Nacos配置中心
新建配置
打开nacos
配置管理
> 配置列表
右边有个十字添加按钮
Data ID
api-gateway-dev ,dev 对应 profiles.activeGroup
分组名称DEFAULT_GROUP配置格式
yaml
如果不是默认public的命名空间,需要在yaml中指定命名空间地址spring: cloud: nacos: discovery: namespace: ed1a9337-XXXX-XXXX-XXXX-f80c98ce23ea # 这里替换自己的命名空间ID
完整配置
server:
port: 9000
spring:
application:
name: api-gateway
cloud:
nacos:
discovery:
server-addr: # nacos 地址
namespace: # 命名空间id
gateway:
routes:
- id: project-service #路由唯一标识
uri: lb://project-service # 使用nacos转发地址
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发,前端访问路径统一加上前缀 project-servic
- Path=/project-servic/**
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀,转发给后续的路径
- id: user-service #路由唯一标识
uri: lb://user-service # 使用nacos转发地址
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发,前端访问路径统一加上前缀 user-service
- Path=/user-service/**
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀,转发给后续的路径
pom.xml
<!--添加nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
application.java添加注解
@EnableDiscoveryClient
新建bootstrap.yml
文件
spring:
application:
name: api-gateway
cloud:
nacos:
config:
server-addr: 192.168.0.88:8848 #Nacos配置中心地址
file-extension: yaml #文件拓展格式
namespace: # 指定命名空间
group: # 指定分组
profiles:
active: dev
限流
。。。。