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-way cloud: gateway: discovery: locator: enabled: true lower-case-service-id: true routes: - id: service-edu uri: lb://service-edu // lb://是指当前注册中心下 后面的是微服务的名字 predicates: - Path=/eduservice/** nacos: discovery: server-addr: localhost:8848启动类上不要忘记加Nacos的注解:@EnableDiscoveryClient
主要就是这个配置类
跨域问题:
因为getway这个已经能够解决跨域的问题!那怎么解决的呢,因为在网关配置中通过这个getway去分发到各个服务,所以跨域问题也一并解决了,所以说
@CrossOrigin 这个注解就不用加了,不然会报错 @Api(description = "登录") @RestController @RequestMapping("/eduservice/user") @CrossOrigin public class EduLoginController { }这里有一篇介绍Nacos的简单运用:https://blog.csdn.net/qq_39693164/article/details/108304646