在通过gateway将请求发送到对应的服务模块时,出现了503的报错,也就是gateway时可以正常启动,但是页面上在发送请求获取数据的时候,却不是相应的请求地址。
解决方法:
1.首先你得保证前端项目里面访问网关地址都是正确的。
2.检查一下你的nacos中服务和网关是否在同一个命名空间和分组中。
3.检查一下你的配置有没有写错(漏写了什么标点符号什么的)。
spring:
cloud:
gateway:
routes:
- id: admin_route
uri: lb://renren-fast
predicates:
- Path=/api/**
filters:
- RewritePath= /api/(?<segment>.*),/renren-fast/$\{segment}
4.如果还没有解决问题,在你的pom里面加上:
java
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.0.1</version>
</dependency>
注意是spring-cloud-starter-loadbalancer,不是spring-cloud-loadbalancer!!!!
5.如果又出现了其他的报错,比如我的是报错信息说是:
java
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class
解决方法就是在启动类上加上:
java
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
6.如果又出现了依赖冲突的报错,可以在你的配置类上,也就是yml上加上:
java
spring:
main:
allow-circular-references: true
7.如果上面还是没有解决你的问题,你就仔细检查一下你的springboot和springcloud的版本是否对应,当然你已经做到了这一步,大概率说明你的版本是没有什么问题的,但还是要仔细检查一下,你是否有的地方粗心了一些。
8.基本上你的报错信息呈现在控制台之后,你都可以根据报错信息找到问题在哪里,如果自己还是解决不了,那就只能去百度了,如果百度解决不了,最好的方法就是问问你身边的人。