1.引用spring cloud gateway+nacos配置中心
2.微服务+分布式(本节与分布式问题无关)项目
3.路由规则:网关端口:8085;第三方端口:8081,8086
第三方单独访问路径localhost:8081/test/getUserTest?id=2
希望路由到:localhost:consumer-service/test/getUserTest?id=2 (这里我写了两个消费者服务,服务名一致 ) 然后再通过openfeign去访问服务提供者localhost:provider-service/user/getUser?id=2((这里我写了3个服务提供者服务,服务名一致)
(8085是网关层的端口,8081,8086是消费者端口,8082,8083,8084是服务提供者端口)
问题当我访问gateway的时候会出现如下界面
我通过postman访问也是一样的结果 这里就不贴图了
报错503,能肯定的是服务器的问题
当我通过端口,跳过网关路由直接访问其中一个消费者的时候,访问一切正常
我在网上寻找方法 大都是说注册在nacos上面的消费者服务名和配置中gateway的服务名不一致导致的(当然这种情况也是存在的),那么查看配置文件中的配置的服务名和注册中心的名字进行对比
通过上面两张图片可以发现 我在配置文件中配置的消费者服务名称和注册中心的名称一致,所以并不是写错服务名称的原因。
后面想到是不是因为我的消费者服务有多个的原因,有没有可能是我没有添加负载均衡的依赖的原因呢?
然后我就在pom文件中添加了负载均衡的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>3.1.5</version>
</dependency>
然后重新启动 访问网关层 结果如下能够正常访问到数据了文章来源:https://www.toymoban.com/news/detail-428484.html
结果中的port是服务提供者的端口,consumerPort是消费者服务的端口 可以发现 进入网关后负载均衡的调用了消费者服务,然后又通过openfeign负载均衡的访问了提供者服务,至此问题得到解决文章来源地址https://www.toymoban.com/news/detail-428484.html
到了这里,关于关于spring cloud gateway中出现503 Service Unavailable的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!