// SpringCloud组件 gateway 工具 // 统一解决跨域 // 负载均衡 根据服务名 自动 负载均衡 // 熔断降级 // 统一鉴权 // 请求过滤 // 路径重写 // 限流保护 // gateway 工具 三个组成 // 路由 断言 过滤 // gateway 使用 // 1. 创建 gateway 模块 // 2.在模块中 引入相关依赖
com.schoolWeb common_utils0.0.1-SNAPSHOT org.springframework.cloud spring-cloud-starter-alibaba-nacos-discoveryorg.springframework.cloud spring-cloud-starter-gatewaycom.google.code.gson gsonorg.springframework.cloud spring-cloud-starter-openfeign
// 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/** #配置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



