使用gateway网关对服务进行访问,没有反应

1.先看注册中心有有没有此服务
在这里插入图片描述

2. 如果是使用yml文件一定要注意格式
如果格式出现问题
在这里插入图片描述格式所出现的地方会有背景颜色提示
只有格式正确,序列正确是不会出现背景颜色
在这里插入图片描述
如上图,格式就是正确的

网关每个节点的作用一定要了解清楚

 cloud:
    gateway:
      discovery:  #是否与服务发现组件进行结合,通过 serviceId(必须设置成大写) 转发到具体的服务实例。默认为false,设为true便开启通过服务中心的自动根据 serviceId 创建路由的功能。
        locator:   #路由访问方式:http://Gateway_HOST:Gateway_PORT/大写的serviceId/**,其中微服务应用名默认大写访问。
          enabled: true
          lower-case-service-id: true #使用小写service-id

节点 discovery.locator.enabled作用
是否与服务发现组件进行结合,通过 serviceId(必须设置成大写) 转发到具体的服务实例。默认为false,设为true便开启通过服务中心的自动根据 serviceId 创建路由的功能

locator:   #路由访问方式:http://Gateway_HOST:Gateway_PORT/大写的serviceId/**,其中微服务应用名默认大写访问。
          enabled: true

lower-case-service-id: true 作用
使用小写service-id

这样配置以后可以通过在网关后面加服务名的方式访问
例如:http://mall-gateway:8201/mall-admin/admin/login

还有routes路由节点
使用了routes节点就去掉discovery节点,两者选一

  routes:
        - id: admin_route
          uri: lb://mall-admin
          predicates:
            - Path=/admin/**
          filters:
            - RewritePath=/admin/(?<segment>.*),/$\{segment}

格式一定要对齐,路由id不能重复,uri中出现的服务名不能再出现path路径中

在这里插入图片描述
如上图,这样是错误的
uri 是请求转发的路径
predicates是断言 条件判断 满足条件才能进行路径转发
转发路径为 uri+path

**filters是过滤 可以把一些不需要的路径去掉 **
在这里插入图片描述
如上图 RewritePath 路径重写过滤 把admin过滤

官网版本:Gateway详情功能点此处

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐