定制小程序开发费用Gateway 根据服务名路由失败,报错 Service Unavailable, status=503

定制小程序开发费用记一次路由转发失败的经历

我的SpringBoot版本为2.6.6,定制小程序开发费用本篇文章对于跟我差不定制小程序开发费用多版本的同学应该都适用。

使用gateway+,yaml配置如下,这里使用的是服务名称进行转发:

server:  port: 10010spring:  application:    name: @artifactId@  cloud:    nacos:      server-addr: 127.0.0.1:8848 # nacos地址    gateway:      discovery:        locator:          enabled: true      routes:        - id: blogtest # 路由标识,必须唯一          uri: lb://blogtest # 路由的目标地址,lb为load balance,负载均衡          predicates: # 路由断言,判断请求是否符合规则            - Path=/test/**  # 判断请求是否以/user开头
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

pom文件如下:

<dependencies>    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-gateway</artifactId>    </dependency>    <dependency>        <groupId>com.alibaba.cloud</groupId>        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>    </dependency></dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

然后就出现了服务无法访问的情况,一直报错

Whitelabel Error Page

This application has no configured error view, so you are seeing this as a fallback.

Wed May 18 15:38:29 CST 2022

[fd8c3a90-7] There was an unexpected error (type=Service Unavailable, status=503).

关键是控制台也没报错,很正常的那种,就很让我怀疑是自己的问题。

后面把路由地址改了一下,改成了使用http地址进行转发:

    gateway:      routes:        - id: blogtest          uri: http://127.0.0.1:1236 # 这里改了          predicates:            - Path=/test/** 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后再到浏览器发送请求,成功了,可以正常访问。

想了一下觉得可能是Nacos版本和我项目的依赖版本不匹配的问题,还去把Nacos降级了一波,结果还是不行。

原因

后面看到一篇博客:https://blog.csdn.net/qq_41953714/article/details/116239716

在pom.xml文件中添加了一个依赖:

<!--客户端负载均衡loadbalancer--><dependency>	<groupId>org.springframework.cloud</groupId>	<artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

重新启动,果然可以了。

原因引用原作者的话

由于springcloud2020弃用了,因此Alibaba在2021版本nacos中删除了Ribbon的jar包,因此无法通过lb路由到指定微服务,出现了503情况。

所以只需要引入springcloud loadbalancer包即可

小提示
如果以上方法对你无效,请注意你的项目是否是由于其他原因造成的无法访问,请观察以下几点:

  • 你访问到的页面上是否有“Whitelabel Error Page”这几个大字
  • 你的错误代码是不是503

如果你出现的情况和我不一样的话,那可能不是由于Gateway转发导致的异常,可能是由于tomcat或者其他原因导致的。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发