GetWay作為統一配置的網關,可以實現負載均衡的作用以及跨域的作用
引入相關依賴
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><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>
在application配置文件中配置網關的規則
# 服務端口
server.port=8222
# 服務名
spring.application.name=service-gateway
# 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-acl
#設置路由的uri lb://nacos注冊服務名稱
spring.cloud.gateway.routes[0].uri=lb://service-acl
#設置路由斷言,代理servicerId為auth-service的/auth/路徑
spring.cloud.gateway.routes[0].predicates= Path=/*/acl/**#配置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-edu服務
spring.cloud.gateway.routes[2].id=service-msm
spring.cloud.gateway.routes[2].uri=lb://service-msm
spring.cloud.gateway.routes[2].predicates= Path=/edumsm/**
yml格式:
server:port: 8222
spring:application:name: get-waycloud:gateway:discovery:locator:enabled: truelower-case-service-id: trueroutes:- id: service-eduuri: lb://service-edu // lb://是指當前注冊中心下 后面的是微服務的名字predicates:- Path=/eduservice/**nacos:discovery:server-addr: localhost:8848
啟動類上不要忘記加Nacos的注解:@EnableDiscoveryClient
深度解鎖SpringCloud、主要就是這個配置類
跨域問題:
因為getway這個已經能夠解決跨域的問題!那怎么解決的呢,因為在網關配置中通過這個getway去分發到各個服務,所以跨域問題也一并解決了,所以說
@CrossOrigin 這個注解就不用加了,不然會報錯@Api(description = "登錄")
@RestController
@RequestMapping("/eduservice/user")
@CrossOrigin
public class EduLoginController {}
這里有一篇介紹Nacos的簡單運用:https://blog.csdn.net/qq_39693164/article/details/108304646
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态