// SpringCloud组件 gateway 工具
// 统一解决跨域
// 负载均衡 根据服务名 自动 负载均衡
// 熔断降级
// 统一鉴权
// 请求过滤
// 路径重写
// 限流保护
// gateway 工具 三个组成
// 路由 断言 过滤
// gateway 使用
// 1. 创建 gateway 模块
// 2.在模块中 引入相关依赖
<dependencies>
<!-- 自定义的工具类-->
<dependency>
<groupId>com.schoolWeb</groupId>
<artifactId>common_utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- nacos的注册中心-->
<dependency>
<groupId>org.springframework.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>
<!--gson-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<!--服务调用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
// 3. 创建启动类
// 4. 创建 配置文件 配置 网关需要的配置
# 端口号
server.port=8009
#服务名 服务名称 不要写 下划线 _ 否则 分布式 会报错
spring.application.name=service-gateway
# 环境设置 dev test prod
spring.profiles.active=dev
#nacos 服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
# 例子:
#设置路由id 一般写你 服务模块的名字
#spring.cloud.gateway.routes[0].id=service-cms
#设置路由的uri lb://nacos注册服务名称
#spring.cloud.gateway.routes[0].uri=lb://service-cms
#设置路由断言,代理servicerId为auth-service的/auth/路径 你的路径 匹配规则
# /*/acl/** 表示 第一个随便匹配 第二个 匹配 acl 第三个匹配所有
# 一般是你 控制器这个注解里的 @RequestMapping("/cmsservice/banner") 路径
#spring.cloud.gateway.routes[0].predicates= Path=/*/acl/**
#配置service-cms服务
spring.cloud.gateway.routes[0].id=service-cms
spring.cloud.gateway.routes[0].uri=lb://service-cms
spring.cloud.gateway.routes[0].predicates= Path=/cmsservice/**
#配置service-edu服务
spring.cloud.gateway.routes[1].id=service-edu
spring.cloud.gateway.routes[1].uri=lb://service-edu
spring.cloud.gateway.routes[1].predicates= Path=/eduservice/**
#配置service-msm服务
spring.cloud.gateway.routes[2].id=service-msm
spring.cloud.gateway.routes[2].uri=lb://service-msm
spring.cloud.gateway.routes[2].predicates= Path=/sms/**
#配置service-oss服务
spring.cloud.gateway.routes[3].id=service-oss
spring.cloud.gateway.routes[3].uri=lb://service-oss
spring.cloud.gateway.routes[3].predicates= Path=/oss/**
#配置service-ucenter服务
spring.cloud.gateway.routes[4].id=service-ucenter
spring.cloud.gateway.routes[4].uri=lb://service-ucenter
spring.cloud.gateway.routes[4].predicates= Path=/ucentermember/**
//5. 启动网关服务
// 通过网关 统一解决
// 跨域问题 要么在 网关里处理 要么 在模块里处理 加个注解 只能在第一个地方解决 两个地方都配置会出问题
// 权限问题
// 异常问题
// 等等 一些公共的处理 都可以在网关模块里处理
// 具体代码 一般固定写法 代码分享在 github上
javaUtils/gateway at main · Json870422471/javaUtils · GitHub
?
|